Compfiles/Usa2014P6.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned compfiles documentation, Pinned compfiles corpus index
9 declarations, 0 contain sorry, 0 declared as axioms
USA Mathematical Olympiad 2014, Problem 6
Prove that there is a constant c > 0 with the following property: If a, b, n are positive integers such that gcd(a + i, b + j) > 1 for all i, j ∈ {0, 1, ..., n}, then min{a, b} > (cn)ⁿ.
Imports (13)
- Mathlib.Algebra.BigOperators.Associated
- Mathlib.Algebra.CharP.Defs
- Mathlib.Algebra.Order.Ring.Star
- Mathlib.Algebra.Order.Star.Real
- Mathlib.Data.Nat.Cast.Order.Field
- Mathlib.Data.Nat.Factorization.Basic
- Mathlib.Data.Nat.Log
- Mathlib.Data.Rat.Star
- Mathlib.Tactic.Linarith
- Mathlib.Tactic.NormNum
- Mathlib.Tactic.Positivity.Basic
- Mathlib.Tactic.Ring
- ProblemExtraction
Imported by 1 file
- lemma
Usa2014P6.sum_range_one_div_le_auxDyadic bound for harmonic sums: the sum of1/(k+1)fork < 2^m - 1is at mostmline 42 sourceSource documentation
Dyadic bound for harmonic sums: the sum of
1/(k+1)fork < 2^m - 1is at mostm.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,Rat,Finset.sum,Finset.range,HSub.hSub,HPow.hPow,OfNat.ofNat,HDiv.hDiv,HAdd.hAddProof uses:
Nat.recAux,of_eq_true,Eq.trans,True,congr,congrArg,EmptyCollection.emptyCollection,Finset,Inv.inv,congrFun',pow_zero,tsub_self,funext,one_div,CharP.cast_eq_zero,Eq,HMul.hMul,pow_succ,Nat.one_le_pow,Mathlib.Meta.NormNum.isNat_lt_trueand 89 more147 instances, coercions and auxiliary constants left out.
Tactic trace: 34 steps
Open to load the checked before-and-after goal states.
lemma sum_range_one_div_le_aux (m : ℕ) : ∑ k ∈ Finset.range (2 ^ m - 1), (1 : ℚ) / (k + 1) ≤ m := by … - lemma
Usa2014P6.sum_Icc_one_div_le_clogThe harmonic sum∑ k ∈ Icc 1 M, 1/kis at mostNat.clog 2 (M + 1)line 76 sourceSource documentation
The harmonic sum
∑ k ∈ Icc 1 M, 1/kis at mostNat.clog 2 (M + 1).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,Rat,Finset.sum,Finset.Icc,OfNat.ofNat,HDiv.hDiv,Nat.clog,HAdd.hAddProof uses:
HPow.hPow,Nat.le_pow_clog,Mathlib.Meta.NormNum.isNat_lt_true,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.false,HSub.hSub,Eq,Finset,Finset.Ico,Eq.symm,Finset.Ico_add_one_right_eq_Icc,Finset.range,Eq.mpr,id,congrArg,Finset.sum_Ico_eq_sum_range,Nat.add_sub_cancel_right,Nat.cast_addand 17 more95 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
lemma sum_Icc_one_div_le_clog (M : ℕ) : ∑ k ∈ Finset.Icc 1 M, (1 : ℚ) / k ≤ Nat.clog 2 (M + 1) := by … - lemma
Usa2014P6.primesum_inv_sq_leThe sum of1/p^2over the primesp ≤ Mis bounded away from1/2(with room to spare for lower order terms) line 100 sourceSource documentation
The sum of
1/p^2over the primesp ≤ Mis bounded away from1/2(with room to spare for lower order terms).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,Rat,Finset.sum,Finset.filter,Nat.Prime,Finset.range,HAdd.hAdd,HDiv.hDiv,HPow.hPowProof uses:
Eq,LT.lt,Finset,Not,Finset.filter_congr,Membership.mem,Nat.not_lt,Eq.mpr,id,congrArg,Eq.symm,Finset.sum_filter_add_sum_filter_not,HSub.hSub,Finset.sum_le_sum_of_subset_of_nonneg,And,Eq.trans,congrFun',And.intro,And.right,Eq.mpand 185 more174 instances, coercions and auxiliary constants left out.
Tactic trace: 80 steps
Open to load the checked before-and-after goal states.
lemma primesum_inv_sq_le (M : ℕ) (hM : 50 ≤ M) : ∑ p ∈ (Finset.range (M + 1)).filter Nat.Prime, (1 : ℚ) / p ^ 2 ≤ 47 / 100 := by … - lemma
Usa2014P6.card_filter_dvd_leThe number ofi < Nwithp ∣ a + iis at mostN / p + 1, as a rational inequality line 179 sourceSource documentation
The number of
i < Nwithp ∣ a + iis at mostN / p + 1, as a rational inequality.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,LE.le,Rat,Finset.card,Finset.filter,Dvd.dvd,HAdd.hAdd,Finset.range,HDiv.hDivProof uses:
Eq,Finset.Ioc,HSub.hSub,Finset.card_bij,Membership.mem,Finset,Eq.mpr,And,id,Eq.trans,congrFun',congrArg,And.intro,Eq.mp,propext,Finset.mem_range,Finset.mem_filter,And.right,Nat.add_left_cancel,Exists.introand 101 more147 instances, coercions and auxiliary constants left out.
Tactic trace: 73 steps
Open to load the checked before-and-after goal states.
lemma card_filter_dvd_le (a N p : ℕ) (ha : 0 < a) (hp : 0 < p) : (((range N).filter (fun i => p ∣ a + i)).card : ℚ) ≤ (N : ℚ) / p + 1 := by … - lemma
Usa2014P6.two_hundred_mul_succ_le_powAuxiliary exponential bound used in the estimate100 * clog 2 (n^2) ≤ nline 248 sourceSource documentation
Auxiliary exponential bound used in the estimate
100 * clog 2 (n^2) ≤ n.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,HMul.hMul,HAdd.hAdd,HPow.hPowProof uses:
Nat.le_induction,Mathlib.Meta.NormNum.isNat_le_true,Mathlib.Meta.NormNum.isNat_mul,Eq.refl,Mathlib.Meta.NormNum.isNat_ofNat,Mathlib.Meta.NormNum.isNat_add,Mathlib.Meta.NormNum.isNat_pow,Mathlib.Meta.NormNum.IsNatPowT.run,Mathlib.Meta.NormNum.IsNatPowT.trans,Eq,Nat.pow,Mathlib.Meta.NormNum.IsNatPowT.bit1,Bool,Bool.true,Mathlib.Tactic.Ring.of_eq,Nat.rawCast,Mathlib.Tactic.Ring.Common.pow_congr,Mathlib.Tactic.Ring.cast_pos,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.atom_pfand 33 more84 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
lemma two_hundred_mul_succ_le_pow (k : ℕ) (hk : 15 ≤ k) : 200 * (k + 1) ≤ 2 ^ k := by …
- lemma
Usa2014P6.hundred_clog_leForn ≥ 2^15andM + 1 ≤ n^2we have100 * Nat.clog 2 (M + 1) ≤ nline 257 sourceSource documentation
For
n ≥ 2^15andM + 1 ≤ n^2we have100 * Nat.clog 2 (M + 1) ≤ n.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,HPow.hPow,OfNat.ofNat,HAdd.hAdd,HMul.hMul,Nat.clogProof uses:
LT.lt,Mathlib.Meta.NormNum.isNat_lt_true,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.false,Nat.log,Nat.le_log_of_pow_le,Nat.lt_pow_succ_log_self,Nat.clog_mono_right,pow_le_pow_left₀,Nat.zero_le,le_of_lt,Eq,Mathlib.Tactic.Ring.of_eq,Nat.rawCast,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfland 25 more50 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
lemma hundred_clog_le (n M : ℕ) (hn : 2 ^ 15 ≤ n) (hM : M + 1 ≤ n ^ 2) : 100 * Nat.clog 2 (M + 1) ≤ n := by … - lemma
Usa2014P6.pow_gt_finalThe final numerical inequality: forn ≥ 2^15,(n^2/1000)^((n+3)/2) > (n/65536)^n + nline 278 sourceSource documentation
The final numerical inequality: for
n ≥ 2^15,(n^2/1000)^((n+3)/2) > (n/65536)^n + n.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,HPow.hPow,OfNat.ofNat,LT.lt,Real,HAdd.hAdd,HMul.hMul,HDiv.hDivProof uses:
cast,Eq.symm,Eq.trans,congrFun',congrArg,pow_pos,Mathlib.Meta.Positivity.pos_of_isNat,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Mathlib.Meta.NormNum.instAtLeastTwo,Bool,Nat.ble,lt_of_not_ge,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,Neg.neg,HSub.hSub,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Nat.rawCastand 151 more188 instances, coercions and auxiliary constants left out.
Tactic trace: 161 steps
Open to load the checked before-and-after goal states.
lemma pow_gt_final (n : ℕ) (hn : 2 ^ 15 ≤ n) : (1 / 65536 * (n : ℝ)) ^ n + n < ((n : ℝ) ^ 2 / 1000) ^ ((n + 3) / 2) := by … - lemma
Usa2014P6.row_boundDocumented declaration: row_bound line 421 sourceSource documentation
The heart of the proof: for
n ≥ 2^15, somea + i(and symmetrically someb + j) is divisible by more than(n+1)/2distinct primes exceedingn^2/1000, which forcesato be huge.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,LE.le,HPow.hPow,Membership.mem,Finset,Finset.range,HAdd.hAdd,Nat.gcd,Real,HDiv.hDivProof uses:
Eq,rfl,le_trans,Mathlib.Meta.NormNum.isNat_le_true,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Mathlib.Meta.NormNum.isNat_pow,Mathlib.Meta.NormNum.IsNatPowT.run,Mathlib.Meta.NormNum.IsNatPowT.trans,Nat.pow,Mathlib.Meta.NormNum.IsNatPowT.bit1,Bool,Bool.true,Eq.mpr,id,congrArg,HMul.hMul,propext,Nat.le_div_iff_mul_le,Mathlib.Meta.NormNum.isNat_lt_trueand 280 more294 instances, coercions and auxiliary constants left out.
Tactic trace: 316 steps (first 200 of 316)
Open to load the checked before-and-after goal states.
lemma row_bound (a b n : ℕ) (ha : 0 < a) (hb : 0 < b) (hn : 2 ^ 15 ≤ n) (h : ∀ i ∈ range (n + 1), ∀ j ∈ range (n + 1), 1 < Nat.gcd (a + i) (b + j)) : ((n : ℝ) ^ 2 / 1000) ^ ((n + 3) / 2) ≤ (a : ℝ) + n := by …Mentions: h
- problem
Usa2014P6.usa2014_p6line 722 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Exists,Real,And,LT.lt,OfNat.ofNat,Nat,Membership.mem,Finset,Finset.range,HAdd.hAdd,Nat.gcd,HPow.hPow,HMul.hMul,Min.minProof uses:
Exists.intro,HDiv.hDiv,And.intro,Mathlib.Meta.NormNum.isNNRat_lt_true,Mathlib.Meta.NormNum.IsNat.to_isNNRat,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_zero,Mathlib.Meta.NormNum.isNNRat_div,Mathlib.Meta.NormNum.isNNRat_mul,Inv.inv,Eq.refl,Nat.cast_one,Mathlib.Meta.NormNum.isNNRat_inv_pos,Mathlib.Meta.NormNum.instAtLeastTwo,Nat.mul,Bool,Bool.true,LE.le,Or,lt_or_geand 121 more146 instances, coercions and auxiliary constants left out.
Tactic trace: 43 steps
Open to load the checked before-and-after goal states.