Compfiles/Usa2000P6.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
4 declarations, 0 contain sorry, 0 declared as axioms
USA Mathematical Olympiad 2000, Problem 6
Let a₁, b₁, a₂, b₂, ..., aₙ, bₙ be nonnegative real numbers. Prove that
∑ᵢⱼ min(aᵢaⱼ, bᵢbⱼ) ≤ ∑ᵢⱼ min(aᵢbⱼ, aⱼbᵢ),
where each sum is taken over all n² pairs (i, j).
Imported by 1 file
- theorem
Usa2000P6.key_identityThe key algebraic identity: the difference of the two min-terms of a pair of indices factors as a sign times a nonnegative min-kernel entry line 58 sourceSource documentation
The key algebraic identity: the difference of the two min-terms of a pair of indices factors as a sign times a nonnegative min-kernel entry.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LE.le,OfNat.ofNat,Eq,HSub.hSub,Min.min,HMul.hMul,ite,Neg.neg,absProof uses:
dite,Eq.mpr,id,congrArg,ite_eq_left,min_eq_right,mul_le_mul,abs_of_nonneg,Iff.mpr,sub_nonneg,Eq.symm,min_sub_sub_right,min_comm,Min,Eq.rec,Eq.refl,Mathlib.Tactic.Ring.of_eq,HAdd.hAdd,HPow.hPow,Natand 49 more89 instances, coercions and auxiliary constants left out.
Tactic trace: 50 steps
Open to load the checked before-and-after goal states.
theorem key_identity (a b c d : ℝ) (ha : 0 ≤ a) (hb : 0 ≤ b) (hc : 0 ≤ c) (hd : 0 ≤ d) : min (a * d) (c * b) - min (a * c) (b * d) = (if b ≤ a then (1 : ℝ) else -1) * (if d ≤ c then (1 : ℝ) else -1) * min (min a b * |c - d|) (min c d * |a - b|) := by … - theorem
Usa2000P6.min_kernel_nonnegThe min kernelKᵢⱼ = min (s i) (s j)is positive semidefinite: its quadratic form is nonnegative for every real vectorzline 109 sourceSource documentation
The min kernel
Kᵢⱼ = min (s i) (s j)is positive semidefinite: its quadratic form is nonnegative for every real vectorz. Proved by strong induction on the index set, peeling off an index wheresis minimal.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,Real,Finset,Membership.mem,LE.le,OfNat.ofNat,Finset.sum,HMul.hMul,Min.minProof uses:
Finset.strongInduction,LT.lt,Eq,EmptyCollection.emptyCollection,Finset.Nonempty,Or,Finset.eq_empty_or_nonempty,of_eq_true,Eq.trans,True,congrArg,Finset.sum_const_zero,Eq.symm,And,Exists,Finset.exists_min_image,HAdd.hAdd,HPow.hPow,Nat,HSub.hSuband 83 more104 instances, coercions and auxiliary constants left out.
Tactic trace: 54 steps
Open to load the checked before-and-after goal states.
theorem min_kernel_nonneg {ι : Type*} [DecidableEq ι] (z : ι → ℝ) : ∀ (T : Finset ι) (s : ι → ℝ), (∀ i ∈ T, 0 ≤ s i) → 0 ≤ ∑ i ∈ T, ∑ j ∈ T, z i * z j * min (s i) (s j) := by … - theorem
Usa2000P6.kernel_nonnegThe generalized min kernelMᵢⱼ = min (u i * w j) (u j * w i), withuandwnonnegative, is positive semidefinite line 182 sourceSource documentation
The generalized min kernel
Mᵢⱼ = min (u i * w j) (u j * w i), withuandwnonnegative, is positive semidefinite. On the support ofwit equalsw i * w j * min (u i / w i) (u j / w j), so this reduces tomin_kernel_nonneg.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,Finset,Real,Membership.mem,LE.le,OfNat.ofNat,Finset.sum,HMul.hMul,Min.minProof uses:
Finset.filter,LT.lt,Finset.filter_subset,Not,Eq,Decidable.byContradiction,Iff.mpr,And,Finset.mem_filter,And.intro,lt_of_le_of_ne,Ne.symm,Eq.mpr,id,congrArg,MulZeroClass.mul_zero,min_eq_right,mul_nonneg,Eq.refl,min_eq_leftand 77 more84 instances, coercions and auxiliary constants left out.
Tactic trace: 30 steps
Open to load the checked before-and-after goal states.
theorem kernel_nonneg {ι : Type*} [DecidableEq ι] (S : Finset ι) (u w z : ι → ℝ) (hu : ∀ i ∈ S, 0 ≤ u i) (hw : ∀ i ∈ S, 0 ≤ w i) : 0 ≤ ∑ i ∈ S, ∑ j ∈ S, z i * z j * min (u i * w j) (u j * w i) := by …Mentions: S
- problem
Usa2000P6.usa2000_p6line 223 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,Real,LE.le,OfNat.ofNat,Finset.sum,Finset.univ,Min.min,HMul.hMulProof uses:
Eq.mpr,HSub.hSub,id,Eq,congrArg,Eq.symm,propext,sub_nonneg,Finset.sum_sub_distrib,Finset.sum_congr,rfl,Finset,Membership.mem,Eq.refl,ite,Neg.neg,abs, Usa2000P6.key_identity, Usa2000P6.kernel_nonneg,le_minand 1 more43 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.