Compfiles/Usa2002P5.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
16 declarations, 0 contain sorry, 0 declared as axioms
USA Mathematical Olympiad 2002, Problem 5
Let a, b be integers greater than 2. Prove that there exists a positive integer k and a finite sequence n₁, n₂, ..., nₖ of positive integers such that n₁ = a, nₖ = b, and nᵢ + nᵢ₊₁ divides nᵢnᵢ₊₁ for each i (1 ≤ i < k).
Imports (8)
Imported by 1 file
- inductive
Usa2002P5.LinkedLinked a bmeans thatacan be connected tobby a finite chain of positive integers in which any two consecutive termsx, ysatisfyx + y ∣ x * yline 53 sourceSource documentation
Linked a bmeans thatacan be connected tobby a finite chain of positive integers in which any two consecutive termsx, ysatisfyx + y ∣ x * y.no axioms what this means
Statement uses:
Intinductive Linked : ℤ → ℤ → Prop where …
- theorem
Usa2002P5.Linked.pos_leftline 62 sourceno axioms what this means
Statement uses:
Int, Usa2002P5.Linked,LT.lt,OfNat.ofNatProof uses:
Usa2002P5.Linked.rec,Dvd.dvd,HAdd.hAdd,HMul.hMul9 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2002P5.Linked.pos_rightline 67 sourceno axioms what this means
Statement uses:
Int, Usa2002P5.Linked,LT.lt,OfNat.ofNatProof uses:
Usa2002P5.Linked.rec,Dvd.dvd,HAdd.hAdd,HMul.hMul9 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2002P5.Linked.transline 73 sourceno axioms what this means
Statement uses:
Int, Usa2002P5.LinkedProof uses:
Usa2002P5.Linked.rec,LT.lt,OfNat.ofNat,id,Dvd.dvd,HAdd.hAdd,HMul.hMul,Usa2002P5.Linked.snoc7 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- instance
Usa2002P5.Linked.(instance at line 79)line 79 source - theorem
Usa2002P5.Linked.symmline 81 sourcestandard axioms: propext what this means
Statement uses:
Int, Usa2002P5.LinkedProof uses:
Usa2002P5.Linked.rec,LT.lt,OfNat.ofNat,Usa2002P5.Linked.refl,Dvd.dvd,HAdd.hAdd,HMul.hMul, Usa2002P5.Linked.trans,Usa2002P5.Linked.snoc, Usa2002P5.Linked.pos_right,Eq.mpr,id,Eq,congrArg,add_comm,mul_comm16 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2002P5.link_pred_mulBasic link:t ~ t * (t - 1)for1 < t, ast + t * (t - 1) = t ^ 2line 91 sourceSource documentation
Basic link:
t ~ t * (t - 1)for1 < t, ast + t * (t - 1) = t ^ 2.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Int,LT.lt,OfNat.ofNat, Usa2002P5.Linked,HMul.hMul,HSub.hSubProof uses:
mul_pos,Usa2002P5.Linked.snoc,Usa2002P5.Linked.refl,Exists.intro,Eq,HAdd.hAdd,Mathlib.Tactic.Ring.of_eq,HPow.hPow,Nat,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNat,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mpr,id,congrArgand 34 more49 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
theorem link_pred_mul {t : ℤ} (ht : 1 < t) : Linked t (t * (t - 1)) := by …Mentions: Usa2002P5.Linked
- theorem
Usa2002P5.link_two_mul_predBasic link:2 * t ~ t * (t - 2)for2 < t, as2 * t + t * (t - 2) = t ^ 2line 97 sourceSource documentation
Basic link:
2 * t ~ t * (t - 2)for2 < t, as2 * t + t * (t - 2) = t ^ 2.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Int,LT.lt,OfNat.ofNat, Usa2002P5.Linked,HMul.hMul,HSub.hSubProof uses:
mul_pos,Usa2002P5.Linked.snoc,Usa2002P5.Linked.refl,Exists.intro,Eq,HAdd.hAdd,Mathlib.Tactic.Ring.of_eq,HPow.hPow,Nat,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNat,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Mathlib.Tactic.Ring.Common.atom_pf,rfland 35 more50 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
theorem link_two_mul_pred {t : ℤ} (ht : 2 < t) : Linked (2 * t) (t * (t - 2)) := by …Mentions: Usa2002P5.Linked
- theorem
Usa2002P5.link_mul_leftScaling:a ~ bimpliesm * a ~ m * bfor0 < mline 103 sourceSource documentation
Scaling:
a ~ bimpliesm * a ~ m * bfor0 < m.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Int,LT.lt,OfNat.ofNat, Usa2002P5.Linked,HMul.hMulProof uses:
Usa2002P5.Linked.rec,Usa2002P5.Linked.refl,mul_pos,Dvd.dvd,HAdd.hAdd,Usa2002P5.Linked.snoc,Eq,Exists.intro,Mathlib.Tactic.LinearCombination.eq_of_eq,Mathlib.Tactic.LinearCombination.mul_const_eq,Mathlib.Tactic.LinearCombination.eq_rearrange,Mathlib.Tactic.Ring.of_eq,HSub.hSub,Mathlib.Tactic.Ring.Common.sub_congr,HPow.hPow,Nat,Nat.rawCast,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.Common.atom_pfand 41 more66 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
theorem link_mul_left {m : ℤ} (hm : 0 < m) {a b : ℤ} (h : Linked a b) : Linked (m * a) (m * b) := by …Mentions: h, Usa2002P5.Linked
- theorem
Usa2002P5.link_two_mulDoubling: every2 < tlinks to2 * tline 113 sourceSource documentation
Doubling: every
2 < tlinks to2 * t.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Int,LT.lt,OfNat.ofNat, Usa2002P5.Linked,HMul.hMulProof uses:
HSub.hSub, Usa2002P5.link_pred_mul,Trans.trans,Eq,rfl, Usa2002P5.link_mul_left,Eq.mp,HAdd.hAdd,congrArg,Eq.symm,mul_assoc,Int.sub_sub, Usa2002P5.Linked.symm,Iff.mpr,Int.sub_pos,Int.mul_comm,mul_comm, Usa2002P5.link_two_mul_pred25 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
theorem link_two_mul {t : ℤ} (ht : 2 < t) : Linked t (2 * t) := by …Mentions: Usa2002P5.Linked
- theorem
Usa2002P5.link_predReduction: every3 < tlinks tot - 1line 127 sourceSource documentation
Reduction: every
3 < tlinks tot - 1.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Int,LT.lt,OfNat.ofNat, Usa2002P5.Linked,HSub.hSubProof uses:
HMul.hMul, Usa2002P5.link_pred_mul,Eq.mp,congrArg,Eq,Mathlib.Tactic.Ring.of_eq,HAdd.hAdd,Int.rawCast,inferInstance,Ring,Int.negOfNat,HPow.hPow,Nat,Nat.rawCast,Mathlib.Tactic.Ring.Common.sub_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mpr,id,Eq.symmand 43 more58 instances, coercions and auxiliary constants left out.
Tactic trace: 30 steps
Open to load the checked before-and-after goal states.
theorem link_pred {t : ℤ} (ht : 3 < t) : Linked t (t - 1) := by …Mentions: Usa2002P5.Linked
- theorem
Usa2002P5.linked_to_threeEvery integer≥ 3links to3line 156 sourceSource documentation
Every integer
≥ 3links to3.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Int,Eq,HAdd.hAdd,OfNat.ofNat, Usa2002P5.LinkedProof uses:
Nat.recAux,Usa2002P5.Linked.refl,Mathlib.Meta.NormNum.isNat_lt_true,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Mathlib.Meta.NormNum.isNat_add,Mathlib.Meta.NormNum.isNat_natCast,Bool,Bool.false,Eq.symm, Usa2002P5.Linked.trans,HSub.hSub, Usa2002P5.link_pred31 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
theorem linked_to_three : ∀ n : ℕ, ∀ t : ℤ, t = n + 3 → Linked t 3 := by …
Mentions: Usa2002P5.Linked
- theorem
Usa2002P5.linked_of_two_ltline 166 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Int,LT.lt,OfNat.ofNat, Usa2002P5.LinkedProof uses: Usa2002P5.linked_to_three,
Int.toNat,HSub.hSub,Eq,Int.toNat_of_nonneg10 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2002P5.linked_anyAny two integers greater than2are linked (via3) line 172 sourceSource documentation
Any two integers greater than
2are linked (via3).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Int,LT.lt,OfNat.ofNat, Usa2002P5.LinkedProof uses: Usa2002P5.Linked.trans, Usa2002P5.linked_of_two_lt, Usa2002P5.Linked.symm
4 instances, coercions and auxiliary constants left out.
theorem linked_any {a b : ℤ} (ha : 2 < a) (hb : 2 < b) : Linked a b := …Mentions: Usa2002P5.Linked
- theorem
Usa2002P5.exists_seq_of_linkedUnfoldLinkedinto an explicit sequence line 176 sourceSource documentation
Unfold
Linkedinto an explicit sequence.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Int, Usa2002P5.Linked,Exists,Nat,And,Eq,OfNat.ofNat,LE.le,LT.lt,Dvd.dvd,HAdd.hAdd,HMul.hMulProof uses:
Usa2002P5.Linked.rec,Exists.intro,And.intro,rfl,Nat.eq_zero_of_le_zero,Eq.symm,absurd,Nat.not_lt_zero,Function.update,Eq.mpr,id,congrArg,Function.update_of_ne,Function.update_self,Eq.refl,dite,Not33 instances, coercions and auxiliary constants left out.
Tactic trace: 40 steps
Open to load the checked before-and-after goal states.
theorem exists_seq_of_linked {a b : ℤ} (h : Linked a b) : ∃ k : ℕ, ∃ n : ℕ → ℤ, n 0 = a ∧ n k = b ∧ (∀ i, i ≤ k → 0 < n i) ∧ ∀ i, i < k → n i + n (i + 1) ∣ n i * n (i + 1) := by …Mentions: h, Usa2002P5.Linked
- problem
Usa2002P5.usa2002_p5line 208 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Int,LT.lt,OfNat.ofNat,Exists,Nat,And,Eq,LE.le,Dvd.dvd,HAdd.hAdd,HMul.hMulProof uses: Usa2002P5.exists_seq_of_linked, Usa2002P5.linked_any
13 instances, coercions and auxiliary constants left out.