Compfiles/Imo1977P3.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
8 declarations, 0 contain sorry, 0 declared as axioms
International Mathematical Olympiad 1977, Problem 3
Given an integer n > 2, let Vₙ be the set of integers 1 + kn for k a positive integer. A number m in Vₙ is called indecomposable if it cannot be expressed as the product of two members of Vₙ. Prove that there is a number in Vₙ which can be expressed as the product of indecomposable members of Vₙ in more than one way (decompositions which differ solely in the order of factors are not regarded as different).
Imports (2)
Imported by 1 file
- def
Imo1977P3.VnThe setVₙof natural numbers of the form1 + k * nwithka positive integer line 31 sourceSource documentation
The set
Vₙof natural numbers of the form1 + k * nwithka positive integer.no axioms what this means
Statement uses:
Nat,SetProof uses:
Set.ofPred,Exists,And,LE.le,OfNat.ofNat,Eq,HAdd.hAdd,HMul.hMul6 instances, coercions and auxiliary constants left out.
def Vn (n : ℕ) : Set ℕ := {m | ∃ k : ℕ, 1 ≤ k ∧ m = 1 + k * n} - def
Imo1977P3.Indecomposablemis indecomposable inVₙif it belongs toVₙbut cannot be written as a product of two members ofVₙline 35 sourceSource documentation
mis indecomposable inVₙif it belongs toVₙbut cannot be written as a product of two members ofVₙ.no axioms what this means
Statement uses:
NatProof uses:
And,Membership.mem,Set, Imo1977P3.Vn,Not,Exists,Eq,HMul.hMul3 instances, coercions and auxiliary constants left out.
def Indecomposable (n : ℕ) (m : ℕ) : Prop := …
- lemma
Imo1977P3.vn_geEvery member ofVₙis at leastn + 1line 41 sourceSource documentation
Every member of
Vₙis at leastn + 1.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo1977P3.Vn,LE.le,HAdd.hAdd,OfNat.ofNatProof uses:
And,Eq,HMul.hMul,Nat.mul_le_mul,le_refl,Eq.symm17 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
lemma vn_ge {n m : ℕ} (hm : m ∈ Vn n) : n + 1 ≤ m := by …Mentions: Imo1977P3.Vn
- lemma
Imo1977P3.mul_mem_vnVₙis closed under multiplication line 47 sourceSource documentation
Vₙis closed under multiplication.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo1977P3.Vn,HMul.hMulProof uses:
And,LE.le,OfNat.ofNat,Eq,HAdd.hAdd,Exists.intro,And.intro,Mathlib.Tactic.Ring.of_eq,Nat.rawCast,HPow.hPow,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mpr,id,congrArgand 16 more30 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
lemma mul_mem_vn {n p q : ℕ} (hp : p ∈ Vn n) (hq : q ∈ Vn n) : p * q ∈ Vn n := by …Mentions: Imo1977P3.Vn
- lemma
Imo1977P3.indecomposable_sq(n - 1)^2(written withn = c + 3) is indecomposable inVₙ: it is smaller than the square of the smallest member ofVₙline 54 sourceSource documentation
(n - 1)^2(written withn = c + 3) is indecomposable inVₙ: it is smaller than the square of the smallest member ofVₙ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo1977P3.Indecomposable,HAdd.hAdd,OfNat.ofNat,HPow.hPowProof uses:
And.intro,Membership.mem,Set, Imo1977P3.Vn,Not,Exists,And,Eq,HMul.hMul,Exists.intro,LE.le,Mathlib.Tactic.Ring.of_eq,Nat.rawCast,Mathlib.Tactic.Ring.Common.pow_congr,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mpr,id,congrArgand 34 more36 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
lemma indecomposable_sq (c : ℕ) : Indecomposable (c + 3) ((c + 2) ^ 2) := by …
Mentions: Imo1977P3.Indecomposable
- lemma
Imo1977P3.not_dvd(n - 1)^2does not divide(n - 1) * (2 * n - 1)(written withn = c + 3), sincen - 1does not divide2 * n - 1 = 2 * (n - 1) + 1line 67 sourceSource documentation
(n - 1)^2does not divide(n - 1) * (2 * n - 1)(written withn = c + 3), sincen - 1does not divide2 * n - 1 = 2 * (n - 1) + 1.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Not,Dvd.dvd,HPow.hPow,HAdd.hAdd,OfNat.ofNat,HMul.hMulProof uses:
Nat.dvd_of_mul_dvd_mul_left,Eq.mp,congrArg,sq,HSub.hSub,Nat.dvd_sub,dvd_mul_left,Eq,LE.le,Nat.le_of_dvd,one_pos37 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
lemma not_dvd (c : ℕ) : ¬ (c + 2) ^ 2 ∣ (c + 2) * (2 * c + 5) := by …
- lemma
Imo1977P3.exists_factorizationEvery member ofVₙis a product of indecomposable members ofVₙline 80 sourceSource documentation
Every member of
Vₙis a product of indecomposable members ofVₙ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Membership.mem,Set, Imo1977P3.Vn,Exists,Multiset,And, Imo1977P3.Indecomposable,Eq,Multiset.prodProof uses:
Nat.strong_induction_on,dite,Classical.propDecidable,Exists.intro,Singleton.singleton,And.intro,Eq.mpr,id,congrArg,Eq.mp,propext,Multiset.mem_singleton,Multiset.prod_singleton,Not,HMul.hMul,Classical.byContradiction,LE.le,HAdd.hAdd, Imo1977P3.vn_ge,Nat.mul_le_muland 8 more28 instances, coercions and auxiliary constants left out.
Tactic trace: 27 steps
Open to load the checked before-and-after goal states.
lemma exists_factorization (n : ℕ) (hn : 2 < n) : ∀ m : ℕ, m ∈ Vn n → ∃ F : Multiset ℕ, (∀ d ∈ F, Indecomposable n d) ∧ F.prod = m := by …Mentions: Imo1977P3.Vn, Imo1977P3.Indecomposable
- problem
Imo1977P3.imo1977_p3line 109 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Exists,And,Membership.mem,Set, Imo1977P3.Vn,Multiset, Imo1977P3.Indecomposable,Eq,Multiset.prod,NeProof uses:
HAdd.hAdd,Exists.intro,HSub.hSub,HPow.hPow,LE.le,HMul.hMul,And.intro,Mathlib.Tactic.Ring.of_eq,Nat.rawCast,Mathlib.Tactic.Ring.Common.pow_congr,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mpr,id,congrArg,Eq.symm,Eq.refl,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNatand 42 more50 instances, coercions and auxiliary constants left out.
Tactic trace: 42 steps
Open to load the checked before-and-after goal states.