Professional Documents
Culture Documents
The Top 100 Theorems in Isabelle: 1. Square Root of 2 Is Irrational
The Top 100 Theorems in Isabelle: 1. Square Root of 2 Is Irrational
The following are the theorems from this list proved so far in the Isabelle proof
assistant.
If you have proved additional ones or know of any, please send me email so I can
add them here.
If the theorem is not part of the Isabelle distribution, the entry will usually contain a link to the repository that does.
The list does not automatically track the most recent version of each theorem. If you find one that that is out of date
and would like me to update it, let me know.
https://isabelle.in.tum.de/dist/library/HOL/HOL-ex/Sqrt.html
lemma fundamental_theorem_of_algebra:
assumes nc: "¬ constant (poly p)"
shows "∃z::complex. poly p z = 0"
https://isabelle.in.tum.de/dist/library/HOL/HOL-Computational_Algebra/Fundamental_Theorem_Algebra.html
https://isabelle.in.tum.de/dist/library/HOL/HOL-Library/Countable.html
4. Pythagorean Theorem
lemma pythagoras:
fixes a b c :: "'a :: real_inner"
assumes "orthogonal (b - a) (c - a)"
shows "dist b c ^ 2 = dist a b ^ 2 + dist a c ^ 2"
http://www.andrew.cmu.edu/user/avigad/isabelle/NumberTheory/PrimeNumberTheorem.html
A formalisation by Eberl and Paulson of the shorter analytic proof is available in the AFP:
https://www.isa-afp.org/entries/Prime_Number_Theorem.html
theorem Goedel_I:
assumes "¬ {} ⊢ Fls"
obtains δ where
"{} ⊢ δ IFF Neg (PfP ⌈δ⌉)"
"¬ {} ⊢ δ"
"¬ {} ⊢ Neg δ"
"eval_fm e δ"
"ground_fm δ"
theorem Goedel_II:
assumes "¬ {} ⊢ Fls"
shows "¬ {} ⊢ Neg (PfP ⌈Fls⌉)"
https://isa-afp.org/entries/Incompleteness.shtml
theorem Quadratic_Reciprocity:
assumes "prime p" "2 < p" "prime q" "2 < q" "p ≠ q"
shows "Legendre p q * Legendre q p = (-1) ^ ((p - 1) div 2 * ((q - 1) d
https://isabelle.in.tum.de/dist/library/HOL/HOL-Number_Theory/Quadratic_Reciprocity.html
theorem impossibility_of_doubling_the_cube:
"x^3 = 2 ⟹ (Point x 0) ∉ constructible"
theorem impossibility_of_trisecting_angle_pi_over_3:
"Point (cos (pi / 9)) 0 ∉ constructible"
https://isa-afp.org/entries/Impossible_Geometry.shtml
theorem content_ball:
fixes c :: "'a :: euclidean_space"
assumes "r ≥ 0"
shows "content (ball c r) = pi powr (DIM('a) / 2) / Gamma (DIM('a) /
corollary content_circle:
"r ≥ 0 ⟹ content (ball c r :: (real ^ 2) set) = r ^ 2 * pi"
https://isabelle.in.tum.de/dist/library/HOL/HOL-Analysis/Ball_Volume.html
lemma euler_theorem:
fixes a m :: nat
assumes "coprime a m"
shows "[a ^ totient m = 1] (mod m)"
https://isabelle.in.tum.de/dist/library/HOL/HOL-Number_Theory/Residues.html
https://isabelle.in.tum.de/dist/library/HOL/HOL-Computational_Algebra/Primes.html
https://isabelle.in.tum.de/dist/library/HOL/HOL-Analysis/Gamma_Function.html
https://isabelle.in.tum.de/dist/library/HOL/HOL-Analysis/Henstock_Kurzweil_Integration.html
https://isabelle.in.tum.de/dist/library/HOL/HOL/Complex.html
corollary transcendental_liouville_constant:
"¬algebraic (standard_liouville (λ_. 1) 10)"
https://isa-afp.org/entries/Liouville_Numbers.shtml
https://www.isa-afp.org/entries/SumSquares.html
theorem two_squares:
assumes "prime (p :: nat)"
shows "(∃a b. p = a\<^sup>2 + b\<^sup>2) = [p ≠ 3] (mod 4)
https://www.isa-afp.org/entries/SumSquares.html
lemma GreenThm_typeI_typeII_divisible_region:
assumes valid_typeI_div: "valid_typeI_division s twoChain_typeI" an
valid_typeII_div: "valid_typeII_division s twoChain_typeII"
f analytically valid: "∀twoC ∈ twoChain typeI. analytically
_ y y_ _ yp y y
"∀twoC ∈ twoChain_typeII. analyticall
only_vertical_division:
"only_vertical_division one_chain_typeI twoChain_typeI"
"boundary_chain one_chain_typeI" and
only_horizontal_division:
"only_horizontal_division one_chain_typeII twoChain_typeII"
"boundary_chain one_chain_typeII" and
typeI_and_typII_one_chains_have_common_subdiv:
"common_boundary_sudivision_exists one_chain_typeI one_chai
shows "integral s (%x. partial_vector_derivative (%x. (F x) ∙ j) i
"integral s (%x. partial_vector_derivative (%x. (F x) ∙ j) i
https://www.isa-afp.org/entries/Green.html
https://isabelle.in.tum.de/dist/library/HOL/HOL-Analysis/Continuum_Not_Denumerable.html
theorem nat_euclid_pyth_triples:
fixes a b c :: nat
assumes "coprime a b" "odd a" "a⇧2 + b⇧2 = c⇧2"
shows "∃p q. a = p⇧2 - q⇧2 ∧ b = 2 * p * q ∧ c = p⇧2 + q⇧2 ∧ coprime
https://www.isa-afp.org/entries/Fermat3_4.html
theorem Schroeder_Bernstein:
fixes f :: "'a ⇒ 'b" and g :: "'b ⇒ 'a"
and A :: "'a set" and B :: "'b set"
assumes "inj_on f A" and "f ` A ⊆ B"
and "inj_on g B" and "g ` B ⊆ A"
shows "∃h. bij_betw h A B"
https://isabelle.in.tum.de/dist/library/HOL/HOL/Inductive.html
theorem pi_series:
"pi / 4 = (∑ k. (-1)^k * 1 / real (k*2+1))"
https://isabelle.in.tum.de/dist/library/HOL/HOL/Transcendental.html
lemma angle_sum_triangle:
assumes "a ≠ b ∨ b ≠ c ∨ a ≠ c"
shows "angle c a b + angle a b c + angle b c a = pi"
https://isa-afp.org/entries/Triangle.shtml
lemma
"valid_countings a b = (if a ≤ b then (if b = 0 then 1 else 0) else (a
https://isabelle.in.tum.de/dist/library/HOL/HOL-ex/Ballot.html
https://isa-afp.org/entries/Ramsey-Infinite.shtml
theorem not_summable_harmonic:
shows "¬summable (λn. 1 / real (n + 1))"
https://isabelle.in.tum.de/dist/library/HOL/HOL-Analysis/Summation_Tests.html
theorem taylor:
fixes a :: real and n :: nat and f :: "real ⇒ real"
assumes "n > 0" and "diff 0 = f"
and "∀m t. m < n ∧ t ∈ {a..b} ⟶ (diff m has_real_derivative diff
https://isabelle.in.tum.de/dist/library/HOL/HOL/MacLaurin.html
lemma brouwer:
fixes f :: "'a::euclidean_space ⇒ 'a"
assumes "compact S" and "convex S" and "S ≠ {}"
and "continuous_on S f"
and "f ` S ⊆ S"
obtains x where "x ∈ S" and "f x = x"
https://isabelle.in.tum.de/dist/library/HOL/HOL-Analysis/Brouwer_Fixpoint.html
lemma cubic:
assumes a0: "a ≠ 0"
shows "
let p = (3 * a * c - b^2) / (9 * a^2) ;
q = (9 * a * b * c - 2 * b^3 - 27 * a^2 * d) / (54 * a^3);
s = csqrt(q^2 + p^3);
s1 = (if p = 0 then ccbrt(2 * q) else ccbrt(q + s));
s2 = -s1 * (1 + ii * csqrt 3) / 2;
s3 = -s1 * (1 - ii * csqrt 3) / 2
in if p = 0 then
a * x^3 + b * x^2 + c * x + d = 0 ⟷
x = s1 - b / (3 * a) ∨
x = s2 - b / (3 * a) ∨
x = s3 - b / (3 * a)
else
s1 ≠ 0 ∧
(a * x^3 + b * x^2 + c * x + d = 0 ⟷
x = s1 - p / s1 - b / (3 * a) ∨
x = s2 - p / s2 - b / (3 * a) ∨
x = s3 - p / s3 - b / (3 * a))"
https://isabelle.in.tum.de/dist/library/HOL/HOL-ex/Cubic_Quartic.html
theorem CauchysMeanTheorem_Eq:
fixes z::"real list"
assumes "pos z"
shows "gmean z = mean z ⟷ het z = 0"
https://isa-afp.org/entries/Cauchy.shtml
theorem pell_solutions:
fixes D :: nat
assumes "∄k. D = k\<^sup>2"
obtains "x\<^sub>0" "y\<^sub>0" :: nat
where "∀(x::int) (y::int).
x\<^sup>2 - D * y\<^sup>2 = 1 ⟷
(∃n::nat. nat ¦x¦ + sqrt D * nat ¦y¦ = (x\<^sub>0 + sqrt D *
corollary pell_solutions_infinite:
fixes D :: nat
assumes "∄k. D = k\<^sup>2"
shows "infinite {(x :: int, y :: int). x\<^sup>2 - D * y\<^sup>2 = 1}
https://www.isa-afp.org/entries/Pell.html
theorem minkowski:
fixes B :: "(real ^ 'n) set"
assumes "convex B" and symmetric: "uminus ` B ⊆ B"
assumes meas_B [measurable]: "B ∈ sets lebesgue"
assumes measure_B: "emeasure lebesgue B > 2 ^ CARD('n)"
obtains x where "x ∈ B" and "x ≠ 0" and "⋀i. x $ i ∈ ℤ"
https://www.isa-afp.org/entries/Minkowskis_Theorem.shtml
It is then shown that if 'a is an algebraically closed field of characteristic 0, then 'a fpxs is also an algebraically
closed field:
theorem inverse_triangle_num_sums:
"(λn. 1 / triangle_num (Suc n)) sums 2"
https://isabelle.in.tum.de/library/HOL/HOL-ex/Triangular_Numbers.html
theorem binomial_ring:
fixes a b :: "'a :: comm_ring_1"
shows "(a + b) ^ n = (∑k=0..n. of_nat (n choose k) * a ^ k * b ^ (n -
https://isabelle.in.tum.de/dist/library/HOL/HOL/Binomial.html
theorem Euler_partition_theorem:
"card {p. p partitions n ∧ (∀i. p i ≤ 1)} = card {p. p partitions n ∧
https://isa-afp.org/entries/Euler_Partition.shtml
lemma quartic:
"(y::real)^3 - b * y^2 + (a * c - 4 * d) * y - a^2 * d + 4 * b * d - c^2
R^2 = a^2 / 4 - b + y ∧
s^2 = y^2 - 4 * d ∧
(D^2 = (if R = 0 then 3 * a^2 / 4 - 2 * b + 2 * s
else 3 * a^2 / 4 - R^2 - 2 * b + (4 * a * b - 8 * c -
(E^2 = (if R = 0 then 3 * a^2 / 4 - 2 * b - 2 * s
else 3 * a^2 / 4 - R^2 - 2 * b - (4 * a * b - 8 * c -
⟹ x^4 + a * x^3 + b * x^2 + c * x + d = 0 ⟷
x = -a / 4 + R / 2 + D / 2 ∨
x = -a / 4 + R / 2 - D / 2 ∨
x = -a / 4 - R / 2 + E / 2 ∨
x = -a / 4 - R / 2 - E / 2"
https://isabelle.in.tum.de/dist/library/HOL/HOL-ex/Cubic_Quartic.html
https://isabelle.in.tum.de/dist/library/HOL/HOL-Probability/Central_Limit_Theorem.html
theorem Dirichlet:
assumes "n > 1" and "coprime h n"
shows "infinite {p. prime p ∧ [p = h] (mod n)}"
https://isa-afp.org/entries/Dirichlet_L.html
theorem Cayley_Hamilton:
fixes A :: "'a∷comm_ring_1^'n∷finite^'n"
shows "evalmat (charpoly A) A = 0"
https://isa-afp.org/entries/Cayley_Hamilton.shtml
lemma wilson_theorem:
assumes "prime p"
shows "[fact (p - 1) = -1] (mod p)"
https://isabelle.in.tum.de/dist/library/HOL/HOL-Number_Theory/Residues.html
lemma card_Pow:
"finite A ⟹ card (Pow A) = 2 ^ card A"
https://isabelle.in.tum.de/dist/library/HOL/HOL/Power.html
53. Pi is Transcendental
https://www.isa-afp.org/entries/Pi_Transcendental.html
lemma eulerian_split:
assumes "nodes G1 ∩ nodes G2 = {}" "edges G1 ∩ edges G2={}"
"valid_unMultigraph G1" "valid_unMultigraph G2"
"valid_unMultigraph.is_Eulerian_trail G1 v1 ps1 v1'"
"valid_unMultigraph.is_Eulerian_trail G2 v2 ps2 v2'"
shows "valid_unMultigraph.is_Eulerian_trail ⦇nodes=nodes G1 ∪ nodes G2,
edges=edges G1 ∪ edges G2 ∪ {(v1',w,v2),(v2,w,v1')}⦈ v1 (ps1@(v
https://isa-afp.org/entries/Koenigsberg_Friendship.shtml
theorem product_of_chord_segments:
fixes S1 T1 S2 T2 X C :: "'a :: euclidean_space"
assumes "between (S1, T1) X" "between (S2, T2) X"
assumes "dist C S1 = r" "dist C T1 = r"
assumes "dist C S2 = r" "dist C T2 = r"
shows "dist S1 X * dist X T1 = dist S2 X * dist X T2"
https://www.isa-afp.org/entries/Chord_Segments.shtml
theorem Hermite_Lindemann:
fixes α β :: "'a ⇒ complex"
assumes "finite I"
assumes "⋀x. x ∈ I ⟹ algebraic (α x)"
assumes "⋀x. x ∈ I ⟹ algebraic (β x)"
assumes "inj_on α I"
assumes "(∑x∈I. β x * exp (α x)) = 0"
shows "∀x∈I. β x = 0"
corollary Hermite_Lindemann_original:
fixes n :: nat and α :: "nat ⇒ complex"
assumes "inj_on α {..<n}"
assumes "⋀i. i < n ⟹ algebraic (α i)"
assumes "linearly_independent_over_int (α ` {..<n})"
shows "algebraically_independent_over_rat n (λi. exp (α i))"
https://www.isa-afp.org/entries/Hermite_Lindemann.html
theorem heron:
fixes A B C :: "real ^ 2"
defines "a ≡ dist B C" and "b ≡ dist A C" and "c ≡ dist A B"
defines "s ≡ (a + b + c) / 2"
shows "content (convex hull {A, B, C}) = sqrt (s * (s - a) * (s - b)
https://isabelle.in.tum.de/dist/library/HOL/HOL-Analysis/Simplex_Content.html
theorem n_subsets:
"finite A ⟹ card {B. B ⊆ A ∧ card B = k} = (card A choose k)"
https://isabelle.in.tum.de/dist/library/HOL/HOL/Binomial.html
https://www.isa-afp.org/entries/Laws_of_Large_Numbers.html
https://isabelle.in.tum.de/dist/library/HOL/HOL-Computational_Algebra/Primes.html
https://isabelle.in.tum.de/dist/library/HOL/HOL/Fun.html
lemma lhopital:
fixes f g f' g' :: "real ⇒ real"
assumes "f ─x→ 0" and "g ─x→ 0"
assumes "∀⇩F u in at x. g u ≠ 0"
assumes "∀⇩F u in at x. g' u ≠ 0"
assumes "∀⇩F u in at x. (f has_real_derivative f' u) (at u)"
assumes "∀⇩F u in at x. (g has_real_derivative g' u) (at u)"
assumes "filterlim (λx. f' x / g' x) F (at x)"
shows "filterlim (λx. f x / g x) F (at x)"
https://isabelle.in.tum.de/dist/library/HOL/HOL/Deriv.html
lemma isosceles_triangle:
assumes "dist a c = dist b c"
shows "angle b a c = angle a b c"
https://isa-afp.org/entries/Triangle.shtml
lemma geometric_sums:
"norm c < 1 ⟹ (λn. c^n) sums (1 / (1 - c))"
lemma suminf_geometric:
"norm c < 1 ⟹ (∑n. c ^ n) = 1 / (1 - c)"
https://isabelle.in.tum.de/dist/library/HOL/HOL/Series.html
67. e is Transcendental
corollary e_transcendental_real: "¬ algebraic (exp 1 :: real)"
https://www.isa-afp.org/entries/E_Transcendental.shtml
lemma double_arith_series:
fixes a d :: "'a :: comm_semiring_1"
shows "2 * (∑i=0..n. a + of_nat i * d) = (of_nat n + 1) * (2 * a + of_
https://isabelle.in.tum.de/dist/library/HOL/HOL/GCD.html
theorem perfect_number_theorem:
assumes even: "even m" and perfect: "perfect m"
shows "∃ n . m = 2^n*(2^(n+1) - 1) ∧ prime ((2::nat)^(n+1) - 1)"
https://isa-afp.org/entries/Perfect-Number-Thm.shtml
https://isabelle.in.tum.de/dist/library/HOL/HOL-Algebra/Coset.html
theorem sylow_thm:
assumes "prime p" and "group G" and "order G = p ^ a * m" and "finite (
obtains H where "subgroup H G" and "card H = p ^ a"
https://isabelle.in.tum.de/dist/library/HOL/HOL-Algebra/Sylow.html
lemma Erdoes_Szekeres:
fixes f :: "_ ⇒ 'a::linorder"
shows "(∃S. S ⊆ {0..m * n} ∧ card S = m + 1 ∧ mono_on f (op ≤) S) ∨
(∃S. S ⊆ {0..m * n} ∧ card S = n + 1 ∧ mono_on f (op ≥) S)"
https://isabelle.in.tum.de/dist/library/HOL/HOL-ex/Erdoes_Szekeres.html
theorem nat_induct:
assumes "P 0" and "⋀n. P n ⟹ P (Suc n)"
shows "P n"
https://isabelle.in.tum.de/dist/library/HOL/HOL/Nat.html
theorem MVT:
fixes a b :: real and f :: "real ⇒ real"
assumes "a < b"
and "∀x∈{a..b}. isCont f x"
and "∀x∈{a<..<b}. f differentiable (at x)"
shows "∃l z::real. z ∈ {a<..<b} ∧ (f has_real_derivative l) (at z) ∧
f b - f a = (b - a) * l"
lemma MVT2:
fixes a b :: real and f f' :: "real ⇒ real"
assumes "a < b"
and "∀x∈{a..b}. (f has_real_derivative f' x) (at x)"
shows "∃z::real. z ∈ {a<..<b} ∧ f b - f a = (b - a) * f' z"
https://isabelle.in.tum.de/dist/library/HOL/HOL/Deriv.html
corollary Fourier_Fejer_Cesaro_summable_simple:
assumes f: "continuous_on UNIV f"
and periodic: "⋀x. f(x + 2*pi) = f x"
shows "(λn. (∑m<n. ∑k≤2*m. Fourier_coefficient f k * trigonometric_se
https://www.isa-afp.org/entries/Fourier.html
77. Sum of kth powers
lemma sum_of_powers:
fixes m n :: nat
shows "(∑k=0..n. k ^ m) = (bernpoly (m + 1) (n + 1) - bernpoly (m + 1)
https://www.isa-afp.org/entries/Bernoulli.html
theorem CauchySchwarzReal:
fixes x::vector
assumes "vlen x = vlen y"
shows "¦x⋅y¦ ≤ ∥x∥*∥y∥"
https://isa-afp.org/entries/Cauchy.shtml
lemma Cauchy_Schwarz_ineq2:
"¦inner x y¦ ≤ norm x * norm y"
https://isabelle.in.tum.de/dist/library/HOL/HOL-Analysis/Inner_Product.html
lemma IVT':
fixes f :: "real ⇒ real"
assumes "a ≤ b" and "y ∈ {f a..f b}" and "continuous_on {a..b} f"
obtains x where "x ∈ {a..b}" and "f x = y"
https://isabelle.in.tum.de/dist/library/HOL/HOL/Topological_Spaces.html
lemma in_prime_factors_iff:
"p ∈ set_mset (prime_factors x) ⟷ x ≠ 0 ∧ p dvd x ∧ prime p"
lemma prod_mset_prime_factorization:
assumes "x ≠ 0"
shows "prod_mset (prime_factorization x) = normalize x"
The normalize function is required because associated elements (like -3 and 3) have the same factorization; for
natural numbers, it is the identity.
https://isabelle.in.tum.de/dist/library/HOL/HOL-Computational_Algebra/Factorial_Ring.html
corollary prime_harmonic_series_diverges:
"¬convergent (λn. ∑p←primes_upto n. 1 / p)"
https://isa-afp.org/entries/Prime_Harmonic_Series.shtml
The more precise asymptotic estimate given by Mertens’ Second Theorem is also available:
theorem mertens_second_theorem:
"(λx. (∑p | real p ≤ x ∧ prime p. 1 / p) - ln (ln x) - meissel_merten
https://www.isa-afp.org/entries/Prime_Number_Theorem.html
https://isa-afp.org/entries/Koenigsberg_Friendship.shtml
https://isabelle.in.tum.de/dist/library/HOL/HOL-ex/ThreeDivides.html
A more recent and more extensive library of the Lebesgue Measure and Lebesgue integration is now also in the
standard distribution:
https://isabelle.in.tum.de/dist/library/HOL/HOL-Analysis/Lebesgue_Measure.html
https://isabelle.in.tum.de/dist/library/HOL/HOL-Analysis/Nonnegative_Lebesgue_Integration.html
87. Desargues’s Theorem
theorem desargues_3D:
assumes "desargues_config_3D A B C A' B' C' P α β γ"
shows "rk {α, β, γ} ≤ 2"
https://www.isa-afp.org/entries/Projective_Geometry.html
theorem derangements_formula:
assumes "n ≠ 0" and "finite S" and "card S = n"
shows "card (derangements S) = round (fact n / exp 1)"
https://isa-afp.org/entries/Derangements.shtml
lemma long_div_theorem:
assumes "g ∈ carrier P" and "f ∈ carrier P" and "g ≠ 𝟬\<^bsub>P\<^esub
shows "∃q r (k::nat). (q ∈ carrier P) ∧ (r ∈ carrier P) ∧
(lcoeff g)(^)\<^bsub>R\<^esub>k ⊙\<^bsub>P\<^esub> f = g ⊗\<^bsu
(r = 𝟬\<^bsub>P\<^esub> | deg R r < deg R g)"
https://isabelle.in.tum.de/dist/library/HOL/HOL-Algebra/UnivPoly.html
Independently, HOL-Computational_Algebra provides notions of division and remainder in Euclidean rings (such as
naturals, integers, polynomials):
https://isabelle.in.tum.de/dist/library/HOL/HOL-Computational_Algebra/Euclidean_Algorithm.html
theorem Gamma_asymp_equiv:
"Gamma ∼ (λx. sqrt (2*pi/x) * (x / exp 1) powr x :: real)"
theorem fact_asymp_equiv:
"fact ∼ (λn. sqrt (2*pi*n) * (n / exp 1) ^ n :: real)"
https://www.isa-afp.org/entries/Stirling_Formula.shtml
The triangle inequality is a type class property in Isabelle. Real numbers, integers, etc are instances of this type
class:
https://isabelle.in.tum.de/dist/library/HOL/HOL/Groups.html
lemma birthday_paradox:
assumes "card S = 23" "card T = 365"
shows "2 * card {f ∈ S→\<^sub>E S T. ¬ inj_on f S} ≥ card (S →\<^sub>
https://isabelle.in.tum.de/dist/library/HOL/HOL-ex/Birthday_Paradox.html
lemma cosine_law_triangle:
"dist b c ^ 2 = dist a b ^ 2 + dist a c ^ 2 - 2 * dist a b * dist a c *
https://isa-afp.org/entries/Triangle.shtml
theorem ptolemy:
fixes A B C D center :: "real ^ 2"
assumes "dist center A = radius" and "dist center B = radius"
assumes "dist center C = radius" and "dist center D = radius"
assumes ordering_of_points:
"radiant_of (A - center) ≤ radiant_of (B - center)"
"radiant_of (B - center) ≤ radiant_of (C - center)"
"radiant_of (C - center) ≤ radiant_of (D - center)"
shows "dist A C * dist B D = dist A B * dist C D + dist A D * dist B C"
https://www.isa-afp.org/entries/Ptolemys_Theorem.shtml
https://isabelle.in.tum.de/dist/library/HOL/HOL/Binomial.html
lemma cramer:
fixes A ::"real^'n^'n"
assumes d0: "det A ≠ 0"
shows "A *v x = b ⟷ x = (χ k. det(χ i j. if j=k then b$i else A$i$j)
https://isabelle.in.tum.de/dist/library/HOL/HOL-Analysis/Determinants.html
https://www.isa-afp.org/entries/Bertrands_Postulate.shtml
theorem buffon_short:
assumes "l ≤ d"
shows "emeasure (buffon l d) {True} = 2 * l / (d * pi)"
theorem buffon_long:
assumes "l ≥ d"
shows "emeasure (buffon l d) {True} = 2 / pi * ((l / d) - sqrt ((l / d)
https://www.isa-afp.org/entries/Buffons_Needle.shtml
theorem descartes_sign_rule:
fixes p :: "real poly"
assumes "p ≠ 0"
shows "∃d. even d ∧ coeff_sign_changes p = count_pos_roots p + d"
https://isa-afp.org/entries/Descartes_Sign_Rule.shtml