Compfiles/Imo1989P3.lean

GitHub source file

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

International Mathematical Olympiad 1989, Problem 3

Let $n$ and $k$ be positive integers and let $S$ be a set of $n$ points in the plane such that (i) no three points of $S$ are collinear, and (ii) for each point $P$ of $S$ there are at least $k$ points of $S$ equidistant from $P$. Prove that $k < \frac{1}{2} + \sqrt{2n}$.

Imports (8)
Imported by 1 file
  1. abbrev Imo1989P3.Pt line 35 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Proof uses: EuclideanSpace, Real, Fin, OfNat.ofNat, Nat

    1 instances, coercions and auxiliary constants left out.

  2. lemma Imo1989P3.inner_sub_eq_zero_of_dist_eq If P and Q are both equidistant from A and B, then P - Q is orthogonal to B - A line 43 source

    Source documentation

    If P and Q are both equidistant from A and B, then P - Q is orthogonal to B - A.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Imo1989P3.Pt, Eq, Real, Dist.dist, OfNat.ofNat, ENNReal, Fin, Nat, Inner.inner, HSub.hSub

    Proof uses: HAdd.hAdd, HPow.hPow, Norm.norm, HMul.hMul, Eq.mpr, id, congrArg, Eq.mp, dist_eq_norm, Eq.refl, norm_sub_sq_real, congrFun', Eq.trans, inner_sub_right, congr, inner_sub_left, Mathlib.Tactic.LinearCombination.eq_of_eq, HDiv.hDiv, Mathlib.Tactic.LinearCombination.div_eq_const, Mathlib.Tactic.LinearCombination.add_eq_eq and 77 more

    144 instances, coercions and auxiliary constants left out.

    Tactic trace: 10 steps

    Open to load the checked before-and-after goal states.

    lemma inner_sub_eq_zero_of_dist_eq {A B P Q : Pt} (hP : dist P A = dist P B)
        (hQ : dist Q A = dist Q B) : ⟪P - Q, B - A⟫_ℝ = 0 := by
    …

    Mentions: P, Imo1989P3.Pt

  3. lemma Imo1989P3.collinear_of_dist_eq Three points that are all equidistant from two distinct points A, B are collinear (they lie on the perpendicular bisector of A and B, which is a line) line 59 source

    Source documentation

    Three points that are all equidistant from two distinct points A, B are collinear (they lie on the perpendicular bisector of A and B, which is a line).

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Imo1989P3.Pt, Ne, Eq, Real, Dist.dist, OfNat.ofNat, ENNReal, Fin, Nat, Collinear, Insert.insert, Set, Singleton.singleton

    Proof uses: HSub.hSub, Iff.mpr, sub_ne_zero, Ne.symm, Membership.mem, Submodule, Submodule.orthogonal, Submodule.span, Inner.inner, Submodule.mem_orthogonal_singleton_iff_inner_right, Iff.mp, inner_eq_zero_symm, Imo1989P3.inner_sub_eq_zero_of_dist_eq, Fact, Module.finrank, HAdd.hAdd, Fact.mk, Eq.mpr, id, congrArg and 36 more

    152 instances, coercions and auxiliary constants left out.

    Tactic trace: 22 steps

    Open to load the checked before-and-after goal states.

    lemma collinear_of_dist_eq {A B : Pt} (hAB : A ≠ B) {p₁ p₂ p₃ : Pt} (h₁₂ : p₁ ≠ p₂)
        (h1 : dist p₁ A = dist p₁ B) (h2 : dist p₂ A = dist p₂ B)
        (h3 : dist p₃ A = dist p₃ B) :
        Collinear ℝ ({p₁, p₂, p₃} : Set Pt) := by
    …

    Mentions: Imo1989P3.Pt

  4. problem Imo1989P3.imo1989_p3 line 88 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Nat, LT.lt, OfNat.ofNat, Finset, Imo1989P3.Pt, Eq, Finset.card, Membership.mem, Ne, Not, Collinear, Real, ENNReal, Fin, Insert.insert, Set, Singleton.singleton, Exists, And, LE.le and 5 more

    Proof uses: Finset.powersetCard, rfl, Prod, Finset.filter, Prod.snd, Prod.fst, Classical.propDecidable, SProd.sprod, Decidable.byContradiction, Eq.mp, False, Iff.mp, Finset.one_lt_card_iff, Finset.erase, Iff.mpr, Finset.mem_erase, And.intro, Ne.symm, Eq.mpr, HSub.hSub and 156 more

    232 instances, coercions and auxiliary constants left out.

    Tactic trace: 110 steps

    Open to load the checked before-and-after goal states.