Compfiles: Catalog Of Math Problems Formalized In Lean

Imo2011P1

import Mathlib

/-!
# International Mathematical Olympiad 2011, Problem 1

Given any set A = {a₁, a₂, a₃, a₄} of four distinct positive integers,
we denote the sum a₁ + a₂ + a₃ + a₄ by s_A. Let n_A denote the number
of pairs (i, j) with 1 ≤ i < j ≤ 4 for which a_i + a_j divides s_A.
Find all sets A of four distinct positive integers which achieve the
largest possible value of n_A.
-/

namespace Imo2011P1

/-- The number of two-element subsets of `A` whose sum divides the sum of `A`. -/
def pairCount (A : Finset ℕ) : ℕ :=
  ((A.powersetCard 2).filter fun p ↦ (∑ x ∈ p, x) ∣ ∑ x ∈ A, x).card

/- determine -/ abbrev SolutionSet : Set (Finset ℕ) := sorry

theorem imo2011_p1 (A : Finset ℕ) (hA : A.card = 4) (hApos : ∀ a ∈ A, 0 < a) :
    A ∈ SolutionSet ↔
      ∀ B : Finset ℕ, B.card = 4 → (∀ b ∈ B, 0 < b) →
        pairCount B ≤ pairCount A := sorry

end Imo2011P1

This problem has a complete formalized solution.

Open with the in-brower editor at live.lean-lang.org:
External resources: