Guest User

Untitled

a guest
Sep 19th, 2025
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. import Mathlib
  2. import Aesop
  3.  
  4. theorem num_points_on_boundary (n : ℕ) (hpoints : Finset (ℕ × ℕ)) (hpoints_def : ∀ p, p ∈ hpoints ↔ p.1 ≥ 1 ∧ p.2 ≥ 1 ∧ p.1 + p.2 ≤ n + 1) : (Finset.filter (fun p => p.1 = 1 ∨ p.2 = 1 ∨ p.1 + p.2 = n+1) hpoints).card = 3*n - (if n=1 then 2 else if n=2 then 3 else 3) := by
  5. sorry
  6.  
  7. theorem total_boundary_points_covered_by_at_most_2n (n k : ℕ) (verts : Finset ℝ) (lines : Finset (ℝ × ℝ)) (points : Finset (ℕ × ℕ)) (hn : 3 ≤ n) (hcard : lines.card + verts.card = n) (hallpoints : ∀ p, p ∈ points ↔ p.1 ≥ 1 ∧ p.2 ≥ 1 ∧ p.1 + p.2 ≤ n + 1) (hmain : ∀ p ∈ points, (∃ l ∈ lines, l.1 * p.1 + l.2 = p.2) ∨ (∃ x ∈ verts, p.1 = x)) (hk : (lines.filter (fun l ↦ l.1 ≠ 0 ∧ l.1 ≠ -1)).card = k) (h_not_v1 : 1 ∉ verts) (h_not_y1 : ∀ l ∈ lines, ¬(l.1 = 0 ∧ l.2 = 1)) (h_not_xn1 : ∀ l ∈ lines, ¬(l.1 = -1 ∧ l.2 = n + 1)) : (Finset.filter (fun p => p.1 = 1 ∨ p.2 = 1 ∨ p.1 + p.2 = n+1) points).card ≤ 2 * n := by
  8. sorry
  9.  
  10. theorem boundary_line_exists_at_any_cover_simplified_h_main (n : ℕ)
  11. (verts : Finset ℝ)
  12. (lines : Finset (ℝ × ℝ))
  13. (points : Finset (ℕ × ℕ))
  14. (hn : 4 ≤ n)
  15. (hcard : lines.card + verts.card = n)
  16. (hallpoints : ∀ p, p ∈ points ↔ p.1 ≥ 1 ∧ p.2 ≥ 1 ∧ p.1 + p.2 ≤ n + 1)
  17. (hmain : ∀ p ∈ points, (∃ l ∈ lines, l.1 * p.1 + l.2 = p.2) ∨ (∃ x ∈ verts, p.1 = x)):
  18. (∃ x ∈ verts, x = 1) ∨ (∃ l ∈ lines, (l.1 = 0 ∧ l.2 = 1) ∨ (l.1 = -1 ∧ l.2 = n + 1)) := by
  19.  
  20. by_contra h_neg
  21. have h1 := num_points_on_boundary n points hallpoints
  22. have h2 := total_boundary_points_covered_by_at_most_2n n (lines.filter (fun l ↦ l.1 ≠ 0 ∧ l.1 ≠ -1)).card verts lines points (by omega) hcard hallpoints hmain rfl (by simp_all) (fun l hl h_not_y1 => h_neg (Or.inr ⟨l, hl, Or.inl h_not_y1⟩)) (fun l hl h_not_xn1 => h_neg (Or.inr ⟨l, hl, Or.inr h_not_xn1⟩))
  23. aesop (config := { maxRuleApplications := 1 }) <;> omega
  24.  
Advertisement
Add Comment
Please, Sign In to add comment