Zulip Chat Archive

Stream: Is there code for X?

Topic: IMO 2014 P4 - Proving Line Intersection with Strict Betweenn


Li Jiale (Sep 15 2025 at 11:35):

Problem Statement (IMO 2014 P4)

In acute triangle ABC, points P and Q lie on BC such that ∠PAB = ∠BCA and ∠CAQ = ∠ABC. Let M and N be points such that P is the midpoint of AM and Q is the midpoint of AN.

Lean goal (no betweenness, just lines):

theorem BM_CN_intersect :  X : Pt, X  line[, cfg.B, cfg.M]  X  line[, cfg.C, cfg.N]

What’s the recommended approach/lemmas in mathlib?

Is there a standard “two non-parallel lines intersect” lemma for AffineSubspace lines, e.g.

lemma lines_intersect_of_not_parallel {A B C D : Pt}
    (h : ¬(line[, A, B]  line[, C, D])) :
     X : Pt, X  line[, A, B]  X  line[, C, D] := by
  sorry

and if so, what’s its name / minimal hypotheses?

If the “non-parallel ⇒ intersection” route is the right one, what’s the cleanest way in mathlib to turn these angle facts (or a simpler consequence of them) into ¬ (line[ℝ, B, M]).Parallel (line[ℝ, C, N]) ?

Any small pattern/lemma name pointers would be super helpful (either a ready lemma for lines, or a canonical way to show not_parallel in this setting). Thanks!


Last updated: Dec 20 2025 at 21:32 UTC