Compfiles/Imo1983P3.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 1983, Problem 3
Let a, b, c be positive integers, no two of which have a common divisor greater than 1. Show that 2abc − ab − bc − ca is the largest integer which cannot be expressed in the form xbc + yca + zab, where x, y, z are non-negative integers.
Imports (2)
Imported by 1 file
- lemma
Imo1983P3.two_varTwo-variable Chicken McNugget overℤ: for coprime positiveb c, every integerM > b*c - b - cis a nonnegative combination ofcandbline 31 sourceSource documentation
Two-variable Chicken McNugget over
ℤ: for coprime positiveb c, every integerM > b*c - b - cis a nonnegative combination ofcandb.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Nat.Coprime,Int,GT.gt,HSub.hSub,HMul.hMul,Exists,Eq,HAdd.hAddProof uses:
cast,Eq.symm,Eq.trans,congrFun',congrArg,Nat.cast_zero,Exists.intro,Nat.gcdA,Nat.gcdB,Nat.gcd,Nat.gcd_eq_gcd_ab,Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt,Not.intro,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,Neg.neg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,HPow.hPow,Nat.rawCastand 74 more100 instances, coercions and auxiliary constants left out.
Tactic trace: 36 steps
Open to load the checked before-and-after goal states.
lemma two_var {b c : ℕ} (hb : 0 < b) (hc : 0 < c) (hbc : Nat.Coprime b c) (M : ℤ) (hM : M > (b : ℤ) * c - b - c) : ∃ y z : ℕ, M = y * (c : ℤ) + z * (b : ℤ) := by … - lemma
Imo1983P3.repEvery integern > 2*a*b*c - a*b - b*c - c*ais expressible asx * (b*c) + y * (c*a) + z * (a*b)with nonnegativex y zline 74 sourceSource documentation
Every integer
n > 2*a*b*c - a*b - b*c - c*ais expressible asx * (b*c) + y * (c*a) + z * (a*b)with nonnegativex y z.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Nat.Coprime,Int,GT.gt,HSub.hSub,HMul.hMul,Exists,Eq,HAdd.hAddProof uses:
cast,Eq.symm,Eq.trans,congrFun',congrArg,Nat.cast_zero,Nat.Coprime.mul_right,Nat.Coprime.symm,Exists.intro,Nat.gcdA,Nat.gcdB,Nat.gcd,Nat.gcd_eq_gcd_ab,Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt,Not.intro,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,Neg.neg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congrand 79 more106 instances, coercions and auxiliary constants left out.
Tactic trace: 35 steps
Open to load the checked before-and-after goal states.
lemma rep {a b c : ℕ} (ha : 0 < a) (hb : 0 < b) (hc : 0 < c) (hab : Nat.Coprime a b) (hbc : Nat.Coprime b c) (hca : Nat.Coprime c a) (n : ℤ) (hn : n > 2 * (a : ℤ) * b * c - a * b - b * c - c * a) : ∃ x y z : ℕ, n = x * ((b : ℤ) * c) + y * ((c : ℤ) * a) + z * ((a : ℤ) * b) := by … - problem
Imo1983P3.imo1983_p3line 121 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Nat.Coprime,IsGreatest,Int,Set.ofPred,Not,Exists,Eq,HAdd.hAdd,HMul.hMul,HSub.hSubProof uses:
And.intro,Membership.mem,Set,upperBounds,False,Eq.mpr,id,congr,congrArg,Eq.trans,Nat.cast_mul,congrFun',Nat.cast_add,Nat.cast_one,Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt,Not.intro,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,Neg.neg,Mathlib.Tactic.Ring.of_eqand 75 more116 instances, coercions and auxiliary constants left out.
Tactic trace: 58 steps
Open to load the checked before-and-after goal states.