100 theorems

Freek Wiedijk maintains a list tracking progress of theorem provers in formalizing 100 classic theorems in mathematics as a way of comparing prominent theorem provers. Currently 78 of them are formalized in Lean. We also have a page with the theorems from the list not yet in Lean.

1. The Irrationality of the Square Root of 2 #

Author: mathlib

docs, source

2. Fundamental Theorem of Algebra #

Author: Chris Hughes

theorem Complex.exists_root {f : Polynomial } (hf : 0 < Polynomial.degree f) :
∃ (z : ), Polynomial.IsRoot f z

docs, source

3. The Denumerability of the Rational Numbers #

Author: Chris Hughes

docs, source

4. Pythagorean Theorem #

Author: Joseph Myers

theorem EuclideanGeometry.dist_sq_eq_dist_sq_add_dist_sq_iff_angle_eq_pi_div_two {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] (p1 : P) (p2 : P) (p3 : P) :
dist p1 p3 * dist p1 p3 = dist p1 p2 * dist p1 p2 + dist p3 p2 * dist p3 p2 EuclideanGeometry.angle p1 p2 p3 = Real.pi / 2

docs, source

7. Law of Quadratic Reciprocity #

Author: Chris Hughes (first) and Michael Stoll (second)

theorem legendreSym.quadratic_reciprocity {p : } {q : } [Fact (Nat.Prime p)] [Fact (Nat.Prime q)] (hp : p 2) (hq : q 2) (hpq : p q) :
legendreSym q p * legendreSym p q = (-1) ^ (p / 2 * (q / 2))

docs, source

theorem jacobiSym.quadratic_reciprocity {a : } {b : } (ha : Odd a) (hb : Odd b) :
jacobiSym (a) b = (-1) ^ (a / 2 * (b / 2)) * jacobiSym (b) a

docs, source

9. The Area of a Circle #

Authors: James Arthur, Benjamin Davidson, and Andrew Souther

theorem Theorems100.area_disc (r : NNReal) :
MeasureTheory.volume (Theorems100.disc r) = NNReal.pi * r ^ 2

docs, source

10. Euler’s Generalization of Fermat’s Little Theorem #

Author: Chris Hughes

theorem Nat.ModEq.pow_totient {x : } {n : } (h : Nat.Coprime x n) :

docs, source

11. The Infinitude of Primes #

Author: Jeremy Avigad

theorem Nat.exists_infinite_primes (n : ) :
∃ (p : ), n p Nat.Prime p

docs, source

14. Euler’s Summation of 1 + (1/2)^2 + (1/3)^2 + …. #

Authors: Marc Masdeu, David Loeffler

theorem hasSum_zeta_two :
HasSum (fun (n : ) => 1 / n ^ 2) (Real.pi ^ 2 / 6)

docs, source

15. Fundamental Theorem of Integral Calculus #

Author: Yury G. Kudryashov (first) and Benjamin Davidson (second)

theorem intervalIntegral.integral_hasStrictDerivAt_of_tendsto_ae_right {E : Type u_3} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] {f : E} {c : E} {a : } {b : } (hf : IntervalIntegrable f MeasureTheory.volume a b) (hmeas : StronglyMeasurableAtFilter f (nhds b) MeasureTheory.volume) (hb : Filter.Tendsto f (nhds b MeasureTheory.Measure.ae MeasureTheory.volume) (nhds c)) :
HasStrictDerivAt (fun (u : ) => ∫ (x : ) in a..u, f x) c b

docs, source

theorem intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le {E : Type u_3} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] {f : E} {f' : E} {a : } {b : } (hab : a b) (hcont : ContinuousOn f (Set.Icc a b)) (hderiv : xSet.Ioo a b, HasDerivWithinAt f (f' x) (Set.Ioi x) x) (f'int : IntervalIntegrable f' MeasureTheory.volume a b) :
∫ (y : ) in a..b, f' y = f b - f a

docs, source

16. Insolvability of General Higher Degree Equations (Abel-Ruffini Theorem) #

Author: Thomas Browning

docs, source

17. De Moivre’s Formula #

Author: Abhimanyu Pallavi Sudhir

docs, source

18. Liouville’s Theorem and the Construction of Transcendental Numbers #

Author: Jujian Zhang

docs, source

19. Four Squares Theorem #

Author: Chris Hughes

theorem Nat.sum_four_squares (n : ) :
∃ (a : ) (b : ) (c : ) (d : ), a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2 = n

docs, source

20. All Primes (1 mod 4) Equal the Sum of Two Squares #

Author: Chris Hughes

theorem Nat.Prime.sq_add_sq {p : } [Fact (Nat.Prime p)] (hp : p % 4 3) :
∃ (a : ) (b : ), a ^ 2 + b ^ 2 = p

docs, source

22. The Non-Denumerability of the Continuum #

Author: Floris van Doorn

docs, source

23. Formula for Pythagorean Triples #

Author: Paul van Wamelen

theorem PythagoreanTriple.classification {x : } {y : } {z : } :
PythagoreanTriple x y z ∃ (k : ) (m : ) (n : ), (x = k * (m ^ 2 - n ^ 2) y = k * (2 * m * n) x = k * (2 * m * n) y = k * (m ^ 2 - n ^ 2)) (z = k * (m ^ 2 + n ^ 2) z = -k * (m ^ 2 + n ^ 2))

docs, source

24. The Independence of the Continuum Hypothesis #

Author: Jesse Michael Han and Floris van Doorn

result

website

see the README file in the linked repository.

25. Schroeder-Bernstein Theorem #

Author: Mario Carneiro

theorem Function.Embedding.schroeder_bernstein {α : Type u} {β : Type v} {f : αβ} {g : βα} (hf : Function.Injective f) (hg : Function.Injective g) :
∃ (h : αβ), Function.Bijective h

docs, source

26. Leibniz’s Series for Pi #

Author: Benjamin Davidson

theorem Real.tendsto_sum_pi_div_four :
Filter.Tendsto (fun (k : ) => Finset.sum (Finset.range k) fun (i : ) => (-1) ^ i / (2 * i + 1)) Filter.atTop (nhds (Real.pi / 4))

docs, source

27. Sum of the Angles of a Triangle #

Author: Joseph Myers

theorem EuclideanGeometry.angle_add_angle_add_angle_eq_pi {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {p1 : P} {p2 : P} {p3 : P} (h2 : p2 p1) (h3 : p3 p1) :

docs, source

30. The Ballot Problem #

Authors: Bhavik Mehta, Kexing Ying

theorem Ballot.ballot_problem (q : ) (p : ) :
q < p(ProbabilityTheory.condCount (Ballot.countedSequence p q)) Ballot.staysPositive = (p - q) / (p + q)

docs, source

31. Ramsey’s Theorem #

Author: Bhavik Mehta

result

34. Divergence of the Harmonic Series #

Authors: Anatole Dedecker, Yury Kudryashov

theorem Real.tendsto_sum_range_one_div_nat_succ_atTop :
Filter.Tendsto (fun (n : ) => Finset.sum (Finset.range n) fun (i : ) => 1 / (i + 1)) Filter.atTop Filter.atTop

docs, source

35. Taylor’s Theorem #

Author: Moritz Doll

theorem taylor_mean_remainder_lagrange {f : } {x : } {x₀ : } {n : } (hx : x₀ < x) (hf : ContDiffOn (n) f (Set.Icc x₀ x)) (hf' : DifferentiableOn (iteratedDerivWithin n f (Set.Icc x₀ x)) (Set.Ioo x₀ x)) :
∃ x' ∈ Set.Ioo x₀ x, f x - taylorWithinEval f n (Set.Icc x₀ x) x₀ x = iteratedDerivWithin (n + 1) f (Set.Icc x₀ x) x' * (x - x₀) ^ (n + 1) / (Nat.factorial (n + 1))

docs, source

theorem taylor_mean_remainder_cauchy {f : } {x : } {x₀ : } {n : } (hx : x₀ < x) (hf : ContDiffOn (n) f (Set.Icc x₀ x)) (hf' : DifferentiableOn (iteratedDerivWithin n f (Set.Icc x₀ x)) (Set.Ioo x₀ x)) :
∃ x' ∈ Set.Ioo x₀ x, f x - taylorWithinEval f n (Set.Icc x₀ x) x₀ x = iteratedDerivWithin (n + 1) f (Set.Icc x₀ x) x' * (x - x') ^ n / (Nat.factorial n) * (x - x₀)

docs, source

36. Brouwer Fixed Point Theorem #

Author: Brendan Seamas Murphy

result

37. The Solution of a Cubic #

Author: Jeoff Lee

theorem Theorems100.cubic_eq_zero_iff {K : Type u_1} [Field K] [Invertible 2] [Invertible 3] (a : K) (b : K) (c : K) (d : K) {ω : K} {p : K} {q : K} {r : K} {s : K} {t : K} (ha : a 0) (hω : IsPrimitiveRoot ω 3) (hp : p = (3 * a * c - b ^ 2) / (9 * a ^ 2)) (hp_nonzero : p 0) (hq : q = (9 * a * b * c - 2 * b ^ 3 - 27 * a ^ 2 * d) / (54 * a ^ 3)) (hr : r ^ 2 = q ^ 2 + p ^ 3) (hs3 : s ^ 3 = q + r) (ht : t * s = p) (x : K) :
a * x ^ 3 + b * x ^ 2 + c * x + d = 0 x = s - t - b / (3 * a) x = s * ω - t * ω ^ 2 - b / (3 * a) x = s * ω ^ 2 - t * ω - b / (3 * a)

docs, source

38. Arithmetic Mean/Geometric Mean #

Author: Yury G. Kudryashov

theorem Real.geom_mean_le_arith_mean_weighted {ι : Type u} (s : Finset ι) (w : ι) (z : ι) (hw : is, 0 w i) (hw' : (Finset.sum s fun (i : ι) => w i) = 1) (hz : is, 0 z i) :
(Finset.prod s fun (i : ι) => z i ^ w i) Finset.sum s fun (i : ι) => w i * z i

docs, source

39. Solutions to Pell’s Equation #

Authors: Mario Carneiro (first), Michael Stoll (second)

theorem Pell.eq_pell {a : } (a1 : 1 < a) {x : } {y : } (hp : x * x - Pell.d a1 * y * y = 1) :
∃ (n : ), x = Pell.xn a1 n y = Pell.yn a1 n

docs, source

theorem Pell.exists_of_not_isSquare {d : } (h₀ : 0 < d) (hd : ¬IsSquare d) :
∃ (x : ) (y : ), x ^ 2 - d * y ^ 2 = 1 y 0

docs, source

In pell.eq_pell, d is defined to be a*a - 1 for an arbitrary a > 1.

40. Minkowski’s Fundamental Theorem #

Authors: Alex J. Best, Yaël Dillies

theorem MeasureTheory.exists_ne_zero_mem_lattice_of_measure_mul_two_pow_lt_measure {E : Type u_1} [MeasurableSpace E] {μ : MeasureTheory.Measure E} {F : Set E} {s : Set E} [NormedAddCommGroup E] [NormedSpace E] [BorelSpace E] [FiniteDimensional E] [MeasureTheory.Measure.IsAddHaarMeasure μ] {L : AddSubgroup E} [Countable L] (fund : MeasureTheory.IsAddFundamentalDomain (L) F μ) (h_symm : xs, -x s) (h_conv : Convex s) (h : μ F * 2 ^ FiniteDimensional.finrank E < μ s) :
∃ (x : L), x 0 x s

docs, source

42. Sum of the Reciprocals of the Triangular Numbers #

Authors: Jalex Stark, Yury Kudryashov

theorem Theorems100.inverse_triangle_sum (n : ) :
(Finset.sum (Finset.range n) fun (k : ) => 2 / (k * (k + 1))) = if n = 0 then 0 else 2 - 2 / n

docs, source

44. The Binomial Theorem #

Author: Chris Hughes

theorem add_pow {R : Type u_1} [CommSemiring R] (x : R) (y : R) (n : ) :
(x + y) ^ n = Finset.sum (Finset.range (n + 1)) fun (m : ) => x ^ m * y ^ (n - m) * (Nat.choose n m)

docs, source

45. The Partition Theorem #

Authors: Bhavik Mehta, Aaron Anderson

docs, source

49. The Cayley-Hamilton Theorem #

Author: Scott Morrison

theorem Matrix.aeval_self_charpoly {R : Type u_1} [CommRing R] {n : Type u_4} [DecidableEq n] [Fintype n] (M : Matrix n n R) :

docs, source

51. Wilson’s Lemma #

Author: Chris Hughes

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

docs, source

52. The Number of Subsets of a Set #

Author: mathlib

theorem Finset.card_powerset {α : Type u_1} (s : Finset α) :
(Finset.powerset s).card = 2 ^ s.card

docs, source

54. Königsberg Bridges Problem #

Author: Kyle Miller

docs, source

55. Product of Segments of Chords #

Author: Manuel Candales

theorem EuclideanGeometry.mul_dist_eq_mul_dist_of_cospherical_of_angle_eq_pi {V : Type u_1} [NormedAddCommGroup V] [InnerProductSpace V] {P : Type u_2} [MetricSpace P] [NormedAddTorsor V P] {a : P} {b : P} {c : P} {d : P} {p : P} (h : EuclideanGeometry.Cospherical {a, b, c, d}) (hapb : EuclideanGeometry.angle a p b = Real.pi) (hcpd : EuclideanGeometry.angle c p d = Real.pi) :
dist a p * dist b p = dist c p * dist d p

docs, source

57. Heron’s Formula #

Author: Matt Kempster

theorem Theorems100.heron {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {p1 : P} {p2 : P} {p3 : P} (h1 : p1 p2) (h2 : p3 p2) :
let a := dist p1 p2; let b := dist p3 p2; let c := dist p1 p3; let s := (a + b + c) / 2; 1 / 2 * a * b * Real.sin (EuclideanGeometry.angle p1 p2 p3) = (s * (s - a) * (s - b) * (s - c))

docs, source

58. Formula for the Number of Combinations #

Author: mathlib

theorem Finset.card_powersetCard {α : Type u_1} (n : ) (s : Finset α) :
(Finset.powersetCard n s).card = Nat.choose s.card n

docs, source

theorem Finset.mem_powersetCard {α : Type u_1} {n : } {s : Finset α} {t : Finset α} :
s Finset.powersetCard n t s t s.card = n

docs, source

59. The Laws of Large Numbers #

Author: Sébastien Gouëzel

theorem ProbabilityTheory.strong_law_ae {Ω : Type u_1} [MeasureTheory.MeasureSpace Ω] [MeasureTheory.IsProbabilityMeasure MeasureTheory.volume] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] [MeasurableSpace E] [BorelSpace E] (X : ΩE) (hint : MeasureTheory.Integrable (X 0) MeasureTheory.volume) (hindep : Pairwise fun (i j : ) => ProbabilityTheory.IndepFun (X i) (X j) MeasureTheory.volume) (hident : ∀ (i : ), ProbabilityTheory.IdentDistrib (X i) (X 0) MeasureTheory.volume MeasureTheory.volume) :
∀ᵐ (ω : Ω), Filter.Tendsto (fun (n : ) => (n)⁻¹ Finset.sum (Finset.range n) fun (i : ) => X i ω) Filter.atTop (nhds (∫ (a : Ω), X 0 a))

docs, source

60. Bezout’s Theorem #

Author: mathlib

theorem Nat.gcd_eq_gcd_ab (x : ) (y : ) :
(Nat.gcd x y) = x * Nat.gcdA x y + y * Nat.gcdB x y

docs, source

62. Fair Games Theorem #

Author: Kexing Ying

theorem MeasureTheory.submartingale_iff_expected_stoppedValue_mono {Ω : Type u_1} {m0 : MeasurableSpace Ω} {μ : MeasureTheory.Measure Ω} {𝒢 : MeasureTheory.Filtration m0} {f : Ω} [MeasureTheory.IsFiniteMeasure μ] (hadp : MeasureTheory.Adapted 𝒢 f) (hint : ∀ (i : ), MeasureTheory.Integrable (f i) μ) :
MeasureTheory.Submartingale f 𝒢 μ ∀ (τ π : Ω), MeasureTheory.IsStoppingTime 𝒢 τMeasureTheory.IsStoppingTime 𝒢 πτ π(∃ (N : ), ∀ (x : Ω), π x N)∫ (x : Ω), MeasureTheory.stoppedValue f τ xμ ∫ (x : Ω), MeasureTheory.stoppedValue f π xμ

docs, source

63. Cantor’s Theorem #

Author: mathlib

theorem Cardinal.cantor (a : Cardinal.{u}) :
a < 2 ^ a

docs, source

64. L’Hopital’s Rule #

Author: Anatole Dedecker

theorem deriv.lhopital_zero_nhds {a : } {l : Filter } {f : } {g : } (hdf : ∀ᶠ (x : ) in nhds a, DifferentiableAt f x) (hg' : ∀ᶠ (x : ) in nhds a, deriv g x 0) (hfa : Filter.Tendsto f (nhds a) (nhds 0)) (hga : Filter.Tendsto g (nhds a) (nhds 0)) (hdiv : Filter.Tendsto (fun (x : ) => deriv f x / deriv g x) (nhds a) l) :
Filter.Tendsto (fun (x : ) => f x / g x) (nhdsWithin a {a}) l

docs, source

65. Isosceles Triangle Theorem #

Author: Joseph Myers

theorem EuclideanGeometry.angle_eq_angle_of_dist_eq {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {p1 : P} {p2 : P} {p3 : P} (h : dist p1 p2 = dist p1 p3) :

docs, source

66. Sum of a Geometric Series #

Author: Sander R. Dahmen (finite) and Johannes Hölzl (infinite)

theorem geom_sum_Ico {α : Type u} [DivisionRing α] {x : α} (hx : x 1) {m : } {n : } (hmn : m n) :
(Finset.sum (Finset.Ico m n) fun (i : ) => x ^ i) = (x ^ n - x ^ m) / (x - 1)

docs, source

theorem NNReal.hasSum_geometric {r : NNReal} (hr : r < 1) :
HasSum (fun (n : ) => r ^ n) (1 - r)⁻¹

docs, source

67. e is Transcendental #

Author: Jujian Zhang

result

website

68. Sum of an arithmetic series #

Author: Johannes Hölzl

theorem Finset.sum_range_id (n : ) :
(Finset.sum (Finset.range n) fun (i : ) => i) = n * (n - 1) / 2

docs, source

69. Greatest Common Divisor Algorithm #

Author: mathlib

def EuclideanDomain.gcd {R : Type u} [EuclideanDomain R] [DecidableEq R] (a : R) (b : R) :
R

docs, source

docs, source

theorem EuclideanDomain.dvd_gcd {R : Type u} [EuclideanDomain R] [DecidableEq R] {a : R} {b : R} {c : R} :
c ac bc EuclideanDomain.gcd a b

docs, source

70. The Perfect Number Theorem #

Author: Aaron Anderson

theorem Theorems100.Nat.eq_two_pow_mul_prime_mersenne_of_even_perfect {n : } (ev : Even n) (perf : Nat.Perfect n) :
∃ (k : ), Nat.Prime (mersenne (k + 1)) n = 2 ^ k * mersenne (k + 1)

docs, source

71. Order of a Subgroup #

Author: mathlib

theorem Subgroup.card_subgroup_dvd_card {α : Type u_1} [Group α] [Fintype α] (s : Subgroup α) [Fintype s] :

docs, source

72. Sylow’s Theorem #

Author: Chris Hughes

theorem Sylow.exists_subgroup_card_pow_prime {G : Type u} [Group G] [Fintype G] (p : ) {n : } [Fact (Nat.Prime p)] (hdvd : p ^ n Fintype.card G) :
∃ (K : Subgroup G), Fintype.card K = p ^ n

docs, source

sylow_conjugate

card_sylow_dvd

card_sylow_modeq_one

73. Ascending or Descending Sequences (Erdős–Szekeres Theorem) #

Author: Bhavik Mehta

theorem Theorems100.erdos_szekeres {α : Type u_1} [LinearOrder α] {r : } {s : } {n : } {f : Fin nα} (hn : r * s < n) (hf : Function.Injective f) :
(∃ (t : Finset (Fin n)), r < t.card StrictMonoOn f t) ∃ (t : Finset (Fin n)), s < t.card StrictAntiOn f t

docs, source

74. The Principle of Mathematical Induction #

Author: Leonardo de Moura

inductive Nat :

docs, source

Automatically generated when defining the natural numbers

75. The Mean Value Theorem #

Author: Yury G. Kudryashov

theorem exists_deriv_eq_slope (f : ) {a : } {b : } (hab : a < b) (hfc : ContinuousOn f (Set.Icc a b)) (hfd : DifferentiableOn f (Set.Ioo a b)) :
∃ c ∈ Set.Ioo a b, deriv f c = (f b - f a) / (b - a)

docs, source

76. Fourier Series #

Author: Heather Macbeth

def fourierCoeff {T : } [hT : Fact (0 < T)] {E : Type} [NormedAddCommGroup E] [NormedSpace E] (f : AddCircle TE) (n : ) :
E

docs, source

theorem hasSum_fourier_series_L2 {T : } [hT : Fact (0 < T)] (f : (MeasureTheory.Lp 2 AddCircle.haarAddCircle)) :
HasSum (fun (i : ) => fourierCoeff (f) i fourierLp 2 i) f

docs, source

77. Sum of kth powers #

Authors: mathlib (Moritz Firsching, Fabian Kruse, Ashvni Narayanan)

theorem sum_range_pow (n : ) (p : ) :
(Finset.sum (Finset.range n) fun (k : ) => k ^ p) = Finset.sum (Finset.range (p + 1)) fun (i : ) => bernoulli i * (Nat.choose (p + 1) i) * n ^ (p + 1 - i) / (p + 1)

docs, source

theorem sum_Ico_pow (n : ) (p : ) :
(Finset.sum (Finset.Ico 1 (n + 1)) fun (k : ) => k ^ p) = Finset.sum (Finset.range (p + 1)) fun (i : ) => bernoulli' i * (Nat.choose (p + 1) i) * n ^ (p + 1 - i) / (p + 1)

docs, source

78. The Cauchy-Schwarz Inequality #

Author: Zhouhang Zhou

theorem inner_mul_inner_self_le {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] (x : E) (y : E) :
x, y⟫_𝕜 * y, x⟫_𝕜 RCLike.re x, x⟫_𝕜 * RCLike.re y, y⟫_𝕜

docs, source

theorem norm_inner_le_norm {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] (x : E) (y : E) :
x, y⟫_𝕜 x * y

docs, source

79. The Intermediate Value Theorem #

Author: mathlib (Rob Lewis and Chris Hughes)

theorem intermediate_value_Icc {α : Type u} [ConditionallyCompleteLinearOrder α] [TopologicalSpace α] [OrderTopology α] [DenselyOrdered α] {δ : Type u_1} [LinearOrder δ] [TopologicalSpace δ] [OrderClosedTopology δ] {a : α} {b : α} (hab : a b) {f : αδ} (hf : ContinuousOn f (Set.Icc a b)) :
Set.Icc (f a) (f b) f '' Set.Icc a b

docs, source

80. The Fundamental Theorem of Arithmetic #

Author: mathlib (Chris Hughes)

theorem Nat.factors_unique {n : } {l : List } (h₁ : List.prod l = n) (h₂ : pl, Nat.Prime p) :

docs, source

docs, source

docs, source

docs, source

theorem UniqueFactorizationMonoid.factors_unique {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] {f : Multiset α} {g : Multiset α} (hf : xf, Irreducible x) (hg : xg, Irreducible x) (h : Associated (Multiset.prod f) (Multiset.prod g)) :
Multiset.Rel Associated f g

docs, source

it also has a generalized version, by showing that every Euclidean domain is a unique factorization domain, and showing that the integers form a Euclidean domain.

81. Divergence of the Prime Reciprocal Series #

Authors: Manuel Candales (archive), Michael Stoll (Mathlib)

theorem Theorems100.Real.tendsto_sum_one_div_prime_atTop :
Filter.Tendsto (fun (n : ) => Finset.sum (Finset.filter (fun (p : ) => Nat.Prime p) (Finset.range n)) fun (p : ) => 1 / p) Filter.atTop Filter.atTop

docs, source

theorem not_summable_one_div_on_primes :
¬Summable (Set.indicator {p : | Nat.Prime p} fun (n : ) => 1 / n)

docs, source

82. Dissection of Cubes (J.E. Littlewood’s ‘elegant’ proof) #

Author: Floris van Doorn

theorem Theorems100.«82».cannot_cube_a_cube {n : } :
n 3∀ {s : Set (Theorems100.«82».Cube n)}, Set.Finite sSet.Nontrivial sSet.PairwiseDisjoint s Theorems100.«82».Cube.toSet⋃ c ∈ s, Theorems100.«82».Cube.toSet c = Theorems100.«82».Cube.toSet Theorems100.«82».Cube.unitCubeSet.InjOn Theorems100.«82».Cube.w sFalse

docs, source

83. The Friendship Theorem #

Authors: Aaron Anderson, Jalex Stark, Kyle Miller

docs, source

85. Divisibility by 3 Rule #

Author: Scott Morrison

theorem Nat.three_dvd_iff (n : ) :

docs, source

86. Lebesgue Measure and Integration #

Author: Johannes Hölzl

def MeasureTheory.lintegral {α : Type u_5} :
{x : MeasurableSpace α} → MeasureTheory.Measure α(αENNReal)ENNReal

docs, source

88. Derangements Formula #

Author: Henry Swanson

docs, source

theorem numDerangements_sum (n : ) :
(numDerangements n) = Finset.sum (Finset.range (n + 1)) fun (k : ) => (-1) ^ k * (Nat.ascFactorial (k + 1) (n - k))

docs, source

89. The Factor and Remainder Theorems #

Author: Chris Hughes

theorem Polynomial.dvd_iff_isRoot {R : Type u} {a : R} [CommRing R] {p : Polynomial R} :
Polynomial.X - Polynomial.C a p Polynomial.IsRoot p a

docs, source

theorem Polynomial.mod_X_sub_C_eq_C_eval {R : Type u} [Field R] (p : Polynomial R) (a : R) :
p % (Polynomial.X - Polynomial.C a) = Polynomial.C (Polynomial.eval a p)

docs, source

90. Stirling’s Formula #

Authors: mathlib (Moritz Firsching, Fabian Kruse, Nikolas Kuhn, Heather Macbeth)

docs, source

91. The Triangle Inequality #

Author: Zhouhang Zhou

theorem norm_add_le {E : Type u_6} [SeminormedAddGroup E] (a : E) (b : E) :

docs, source

93. The Birthday Problem #

Author: Eric Rodriguez

theorem Theorems100.birthday :
2 * Fintype.card (Fin 23 Fin 365) < Fintype.card (Fin 23Fin 365) 2 * Fintype.card (Fin 22 Fin 365) > Fintype.card (Fin 22Fin 365)

docs, source

theorem Theorems100.birthday_measure :
MeasureTheory.volume {f : Fin 23Fin 365 | Function.Injective f} < 1 / 2

docs, source

94. The Law of Cosines #

Author: Joseph Myers

theorem EuclideanGeometry.dist_sq_eq_dist_sq_add_dist_sq_sub_two_mul_dist_mul_dist_mul_cos_angle {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] (p1 : P) (p2 : P) (p3 : P) :
dist p1 p3 * dist p1 p3 = dist p1 p2 * dist p1 p2 + dist p3 p2 * dist p3 p2 - 2 * dist p1 p2 * dist p3 p2 * Real.cos (EuclideanGeometry.angle p1 p2 p3)

docs, source

95. Ptolemy’s Theorem #

Author: Manuel Candales

theorem EuclideanGeometry.mul_dist_add_mul_dist_eq_mul_dist_of_cospherical {V : Type u_1} [NormedAddCommGroup V] [InnerProductSpace V] {P : Type u_2} [MetricSpace P] [NormedAddTorsor V P] {a : P} {b : P} {c : P} {d : P} {p : P} (h : EuclideanGeometry.Cospherical {a, b, c, d}) (hapc : EuclideanGeometry.angle a p c = Real.pi) (hbpd : EuclideanGeometry.angle b p d = Real.pi) :
dist a b * dist c d + dist b c * dist d a = dist a c * dist b d

docs, source

96. Principle of Inclusion/Exclusion #

Author: Neil Strickland

github

97. Cramer’s Rule #

Author: Anne Baanen

theorem Matrix.mulVec_cramer {n : Type v} {α : Type w} [DecidableEq n] [Fintype n] [CommRing α] (A : Matrix n n α) (b : nα) :

docs, source

98. Bertrand’s Postulate #

Authors: Bolton Bailey, Patrick Stevens

theorem Nat.bertrand (n : ) (hn0 : n 0) :
∃ (p : ), Nat.Prime p n < p p 2 * n

docs, source

99. Buffon Needle Problem #

Author: Enrico Z. Borba

theorem BuffonsNeedle.buffon_short {Ω : Type u_1} [MeasureTheory.MeasureSpace Ω] (d : ) (l : ) (hd : 0 < d) (hl : 0 < l) (B : Ω × ) (hBₘ : Measurable B) (hB : MeasureTheory.pdf.IsUniform B (Set.Icc (-d / 2) (d / 2) ×ˢ Set.Icc 0 Real.pi) MeasureTheory.volume MeasureTheory.volume) (h : l d) :
∫ (x : Ω), BuffonsNeedle.N l B x = 2 * l * (d * Real.pi)⁻¹

docs, source

theorem BuffonsNeedle.buffon_long {Ω : Type u_1} [MeasureTheory.MeasureSpace Ω] (d : ) (l : ) (hd : 0 < d) (hl : 0 < l) (B : Ω × ) (hBₘ : Measurable B) (hB : MeasureTheory.pdf.IsUniform B (Set.Icc (-d / 2) (d / 2) ×ˢ Set.Icc 0 Real.pi) MeasureTheory.volume MeasureTheory.volume) (h : d l) :
∫ (x : Ω), BuffonsNeedle.N l B x = 2 * l / (d * Real.pi) - 2 / (d * Real.pi) * ((l ^ 2 - d ^ 2) + d * Real.arcsin (d / l)) + 1

docs, source

100. Descartes Rule of Signs #

Author: Alex Meiburg

github