Compfiles/Imo2009P1.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
3 declarations, 0 contain sorry, 0 declared as axioms
International Mathematical Olympiad 2009, Problem 1
Let $n$ be a positive integer and let $a_1, a_2, \ldots, a_k$ ($k \ge 2$) be distinct integers in the set $\{1, 2, \ldots, n\}$ such that $n$ divides $a_i(a_{i+1} - 1)$ for $i = 1, 2, \ldots, k - 1$. Prove that $n$ does not divide $a_k(a_1 - 1)$.
Imports (2)
Imported by 1 file
- lemma
Imo2009P1.telescopeTelescoping: ifc j * c (j+1) = c jfor allj, then the product of any windowc i, c (i+1), …, c (i+m)collapses to its first termc iline 32 sourceSource documentation
Telescoping: if
c j * c (j+1) = c jfor allj, then the product of any windowc i, c (i+1), …, c (i+m)collapses to its first termc i.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommMonoid,Nat,Eq,HMul.hMul,HAdd.hAdd,OfNat.ofNat,Finset.prod,Finset.rangeProof uses:
Nat.recAux,of_eq_true,Eq.trans,True,congrFun',congrArg,Singleton.singleton,Finset,zero_add,Finset.prod_singleton,add_zero,eq_self,Eq.mpr,id,Finset.prod_range_succ,mul_assoc,Eq.symm,add_assoc23 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
lemma telescope {R : Type*} [CommMonoid R] (c : ℕ → R) (hc : ∀ j, c j * c (j + 1) = c j) : ∀ m i, ∏ x ∈ Finset.range (m + 1), c (i + x) = c i := by … - lemma
Imo2009P1.const_of_cyclicIf the relationc j * c (j+1) = c jholds andcis periodic with periodk ≥ 1, thencis constant:c i = c (i+1)for alliline 44 sourceSource documentation
If the relation
c j * c (j+1) = c jholds andcis periodic with periodk ≥ 1, thencis constant:c i = c (i+1)for alli.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommMonoid,Nat,LE.le,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAddProof uses:
Exists,Exists.intro,HSub.hSub,Finset.prod,Finset.range, Imo2009P1.telescope,Eq.mpr,id,congrArg,Eq.symm,Finset.prod_range_succ',Finset.prod_range_succ,HMul,Eq.rec,Eq.refl,Finset.prod_congr,rfl,Finset,Membership.mem,add_command 13 more46 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
lemma const_of_cyclic {R : Type*} [CommMonoid R] (c : ℕ → R) (k : ℕ) (hk : 1 ≤ k) (hc : ∀ j, c j * c (j + 1) = c j) (hper : ∀ i, c i = c (i + k)) : ∀ i, c i = c (i + 1) := by … - problem
Imo2009P1.imo2009_p1line 62 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,LE.le,Fin,Int,Membership.mem,Finset,Finset.Icc,Function.Injective,HAdd.hAdd,Dvd.dvd,HMul.hMul,HSub.hSub,Fin.mk,NotProof uses:
ZMod,HMod.hMod,Nat.mod_lt,Eq,rfl,Nat.mod_eq_of_lt,Nat.succ,Or,lt_or_eq_of_le,Nat.succ_le_of_lt,Eq.mpr,id,congrArg,Nat.add_mod,Eq.refl,Fin.ext,Nat.mod_self,Iff.mpr,ZMod.intCast_zmod_eq_zero_iff_dvd,congrand 73 more116 instances, coercions and auxiliary constants left out.
Tactic trace: 65 steps
Open to load the checked before-and-after goal states.