Compfiles/Imo1971P1.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
7 declarations, 0 contain sorry, 0 declared as axioms
International Mathematical Olympiad 1971, Problem 1
Prove that the following assertion is true for n = 3 and n = 5, and that it is false for every other natural number n > 2:
If a1, a2, ..., an are arbitrary real numbers, then (a1 − a2)(a1 − a3) · · · (a1 − an) + (a2 − a1)(a2 − a3) · · · (a2 − an)
- · · · + (an − a1)(an − a2) · · · (an − an−1) ≥ 0
Imported by 1 file
- def
Imo1971P1.Eline 31 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,RealProof uses:
Finset.sum,Finset.univ,Finset.prod,Finset.erase,HSub.hSub6 instances, coercions and auxiliary constants left out.
- def
Imo1971P1.Pline 34 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NatProof uses:
Fin,Real,GE.ge, Imo1971P1.E,OfNat.ofNat3 instances, coercions and auxiliary constants left out.
- lemma
Imo1971P1.prod_ne_eq_prod_iteThis makes working with the sum easier and simp more powerful line 40 sourceSource comment
This makes working with the sum easier and simp more powerful.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,Real,Eq,Finset.prod,Finset.erase,Finset.univ,HSub.hSub,ite,OfNat.ofNatProof uses:
Eq.mpr,HMul.hMul,id,congrArg,Eq.symm,Finset.mul_prod_erase,Finset.mem_univ20 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
lemma prod_ne_eq_prod_ite {n : ℕ} {i : Fin n} {a : Fin n → ℝ} : ∏ j ≠ i, (a i - a j) = ∏ j, if j = i then 1 else a i - a j := by … - lemma
Imo1971P1.E_equiv_permA proof that E a = E b, where b is obtained by permuting a's indices line 45 sourceSource comment
A proof that E a = E b, where b is obtained by permuting a's indices.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,Real,Exists,Equiv.Perm,Eq,Function.comp, Imo1971P1.EProof uses:
id,Finset.sum_equiv,Finset.univ,Finset.prod,Finset.erase,HSub.hSub,Equiv.symm,of_eq_true,Iff,Membership.mem,Finset,Equiv,Eq.trans,True,forall_congr,congr,congrArg,iff_self,implies_true,Finset.prod_equivand 7 more19 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
lemma E_equiv_perm {n : ℕ} {a b : Fin n → ℝ} (h : ∃ σ : Equiv.Perm (Fin n), b = a ∘ σ) : E a = E b := by …Mentions: h, Imo1971P1.E
- lemma
Imo1971P1.antitone_of_monotone_comp_revThis gets a permutation of the indices of a such that the resulting sequence is antitone line 56 sourceSource comment
This gets a permutation of the indices of a such that the resulting sequence is antitone. Uses Tuple.sort (which gives monotone) composed with Fin.revPerm (which reverses) to get antitone.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,Real,Equiv.Perm,Monotone,Function.comp,Antitone,Fin.revPermProof uses:
LE.le,id,of_eq_true,Eq.trans,True,Fin.rev,congr,congrArg,Fin.revPerm_apply,eq_true15 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
lemma antitone_of_monotone_comp_rev {n : ℕ} (f : Fin n → ℝ) (σ : Equiv.Perm (Fin n)) (hm : Monotone (f ∘ σ)) : Antitone (f ∘ σ ∘ Fin.revPerm) := by …Mentions: f
- lemma
Imo1971P1.exists_antitone_permline 62 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,Real,Exists,Equiv.Perm,And,Eq,Function.comp,AntitoneProof uses:
HMul.hMul,Tuple.sort,Fin.revPerm,Exists.intro,And.intro,Eq.refl,id, Imo1971P1.antitone_of_monotone_comp_rev,Tuple.monotone_sort15 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- problem
Imo1971P1.imo1971_p1line 73 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
And, Imo1971P1.P,OfNat.ofNat,Nat,GT.gt,Ne,NotProof uses:
Even,LT.lt,Eq.mpr,HAdd.hAdd,HSub.hSub,id,Eq,congrArg,Exists,Fin,Real, Imo1971P1.E,Eq.trans,LE.le,forall_congr,GE.ge,funext,ite,Neg.neg,Exists.introand 200 more246 instances, coercions and auxiliary constants left out.
Tactic trace: 180 steps
Open to load the checked before-and-after goal states.