Compfiles/Usa2024P6.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

24 declarations, 0 contain sorry, 0 declared as axioms

USA Mathematical Olympiad 2024, Problem 6

Let n > 2 be an integer and let ℓ ∈ {1, 2, ..., n}. A collection A₁, ..., Aₖ of (not necessarily distinct) subsets of {1, 2, ..., n} is called ℓ-large if |Aᵢ| ≥ ℓ for all 1 ≤ i ≤ k. Find, in terms of n and ℓ, the largest real number c such that the inequality

∑ᵢ ∑ⱼ xᵢ xⱼ |Aᵢ ∩ Aⱼ|²/(|Aᵢ|·|Aⱼ|) ≥ c (∑ᵢ xᵢ)²

holds for all positive integers k, all nonnegative real numbers x₁, ..., xₖ, and all ℓ-large collections A₁, ..., Aₖ of subsets of {1, ..., n}.

Imports (7)
Imported by 1 file
  1. determine Usa2024P6.solution The answer: c = (n + ℓ² - 2ℓ)/(n(n-1)) line 38 source

    Source documentation

    The answer: c = (n + ℓ² - 2ℓ)/(n(n-1)).

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

    Statement uses: Nat, Real

    Proof uses: HDiv.hDiv, HSub.hSub, HAdd.hAdd, HPow.hPow, OfNat.ofNat, HMul.hMul

    20 instances, coercions and auxiliary constants left out.

    noncomputable determine solution : ℕ → ℕ → ℝ := fun n ℓ =>
    …
  2. def Usa2024P6.Works Documented declaration: Works line 44 source

    Source documentation

    Works n ℓ c says that the inequality of the problem holds with constant c: for every positive integer k, all nonnegative weights x₁, ..., xₖ and every ℓ-large collection A₁, ..., Aₖ of subsets of {1, ..., n}.

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

    Statement uses: Nat, Real

    Proof uses: LT.lt, OfNat.ofNat, Fin, LE.le, Finset, Finset.card, HMul.hMul, HPow.hPow, Finset.sum, Finset.univ, HDiv.hDiv, Inter.inter

    21 instances, coercions and auxiliary constants left out.

    noncomputable def Works (n ℓ : ℕ) (c : ℝ) : Prop :=
    …
  3. def Usa2024P6.vvv The quantity v_{p,q} from the official solution: the total normalized weight of the sets containing both p and q line 55 source

    Source documentation

    The quantity v_{p,q} from the official solution: the total normalized weight of the sets containing both p and q.

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

    Statement uses: Nat, Fin, Real, Finset

    Proof uses: Finset.sum, Finset.univ, ite, And, Membership.mem, HDiv.hDiv, Finset.card, OfNat.ofNat

    14 instances, coercions and auxiliary constants left out.

    noncomputable def vvv {n k : ℕ} (x : Fin k → ℝ) (A : Fin k → Finset (Fin n))
        (p q : Fin n) : ℝ :=
    …
  4. lemma Usa2024P6.vvv_def line 59 source

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

    Statement uses: Nat, Fin, Real, Finset, Eq, Usa2024P6.vvv, Finset.sum, Finset.univ, ite, And, Membership.mem, HDiv.hDiv, Finset.card, OfNat.ofNat

    Proof uses: rfl

    14 instances, coercions and auxiliary constants left out.

  5. lemma Usa2024P6.card_inter_cast Intersection cardinality as a sum of indicators line 64 source

    Source documentation

    Intersection cardinality as a sum of indicators.

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

    Statement uses: Nat, Finset, Fin, Eq, Real, Finset.card, Inter.inter, Finset.sum, Finset.univ, ite, And, Membership.mem, OfNat.ofNat

    Proof uses: Finset.filter, Finset.ext, of_eq_true, Iff, Eq.trans, True, congr, congrArg, congrFun', true_and, iff_self, Eq.mpr, id, Finset.natCast_card_filter, Eq.refl

    42 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

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

    lemma card_inter_cast {n : ℕ} (A B : Finset (Fin n)) :
        ((A ∩ B).card : ℝ) = ∑ p : Fin n, (if p ∈ A ∧ p ∈ B then (1 : ℝ) else 0) := by
    …
  6. lemma Usa2024P6.sum_swap4 Swapping the order of a quadruple sum line 72 source

    Source documentation

    Swapping the order of a quadruple sum.

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

    Statement uses: Nat, Fin, Real, Eq, Finset.sum, Finset.univ

    Proof uses: Eq.mpr, id, congrArg, Finset.sum_congr, rfl, Finset, Membership.mem, Eq.symm, Finset.sum_comm_cycle

    6 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    lemma sum_swap4 {n k : ℕ} (F : Fin k → Fin k → Fin n → Fin n → ℝ) :
        (∑ i : Fin k, ∑ j : Fin k, ∑ p : Fin n, ∑ q : Fin n, F i j p q) =
          ∑ p : Fin n, ∑ q : Fin n, ∑ i : Fin k, ∑ j : Fin k, F i j p q := by
    …
  7. lemma Usa2024P6.lhs_eq_sum_v_sq The key rewriting step: the left-hand side of the inequality equals the sum of the squares of the v_{p,q} line 82 source

    Source documentation

    The key rewriting step: the left-hand side of the inequality equals the sum of the squares of the v_{p,q}.

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

    Statement uses: Nat, Fin, Real, Finset, Eq, Finset.sum, Finset.univ, HMul.hMul, HDiv.hDiv, HPow.hPow, Finset.card, Inter.inter, OfNat.ofNat, Usa2024P6.vvv

    Proof uses: ite, And, Membership.mem, rfl, Eq.mpr, id, congrArg, Usa2024P6.card_inter_cast, Finset.sum_congr, dite, ite_eq_left, of_eq_true, Eq.trans, True, congrFun', ite_eq_left_of_eq_true, eq_true, And.left, eq_self, And.right and 53 more

    97 instances, coercions and auxiliary constants left out.

    Tactic trace: 45 steps

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

    lemma lhs_eq_sum_v_sq {n k : ℕ} (x : Fin k → ℝ) (A : Fin k → Finset (Fin n)) :
        ∑ i : Fin k, ∑ j : Fin k, x i * x j *
            (((A i ∩ A j).card : ℝ) ^ 2 / ((A i).card : ℝ) / ((A j).card : ℝ)) =
          ∑ p : Fin n, ∑ q : Fin n, (vvv x A p q) ^ 2 := by
    …

    Mentions: Usa2024P6.vvv

  8. lemma Usa2024P6.sum_diag The "diagonal" sum: ∑ p, v_{p,p} = ∑ i, x i line 146 source

    Source documentation

    The "diagonal" sum: ∑ p, v_{p,p} = ∑ i, x i.

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

    Statement uses: Nat, Fin, Real, Finset, Ne, Finset.card, OfNat.ofNat, Eq, Finset.sum, Finset.univ, Usa2024P6.vvv

    Proof uses: Eq.mpr, ite, Membership.mem, HDiv.hDiv, id, congrFun', congrArg, funext, And, Finset.sum_congr, Eq.refl, ite_congr, and_self, Not, Finset.sum_comm, rfl, Fintype.sum_ite_mem, HSMul.hSMul, Finset.sum_const, HMul.hMul and 6 more

    56 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

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

    lemma sum_diag {n k : ℕ} (x : Fin k → ℝ) (A : Fin k → Finset (Fin n))
        (hA : ∀ i, (A i).card ≠ 0) :
        ∑ p : Fin n, vvv x A p p = ∑ i : Fin k, x i := by
    …

    Mentions: Usa2024P6.vvv

  9. lemma Usa2024P6.sum_sigma_erase Sums over the off-diagonal pairs as double sums line 156 source

    Source documentation

    Sums over the off-diagonal pairs as double sums.

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

    Statement uses: Nat, Fin, Real, Eq, Finset.sum, Sigma, Finset.sigma, Finset.univ, Finset.erase, Sigma.fst, Sigma.snd

    Proof uses: Eq.symm, Finset.sum_sigma'

    6 instances, coercions and auxiliary constants left out.

    lemma sum_sigma_erase {n : ℕ} (f : Fin n → Fin n → ℝ) :
        ∑ t ∈ Finset.univ.sigma (fun p : Fin n => Finset.univ.erase p), f t.1 t.2 =
          ∑ p : Fin n, ∑ q ∈ Finset.univ.erase p, f p q :=
    …

    Mentions: f

  10. lemma Usa2024P6.sum_offdiag The "off-diagonal" sum: ∑ p ≠ q, v_{p,q} = ∑ i, (|Aᵢ| - 1)·xᵢ line 162 source

    Source documentation

    The "off-diagonal" sum: ∑ p ≠ q, v_{p,q} = ∑ i, (|Aᵢ| - 1)·xᵢ.

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

    Statement uses: Nat, Fin, Real, Finset, Ne, Finset.card, OfNat.ofNat, Eq, Finset.sum, Sigma, Finset.sigma, Finset.univ, Finset.erase, Usa2024P6.vvv, Sigma.fst, Sigma.snd, HMul.hMul, HSub.hSub

    Proof uses: id, Eq.mpr, ite, And, Membership.mem, HDiv.hDiv, congrArg, Finset.sum_comm, Finset.sum_congr, rfl, Finset.filter, Eq.symm, Finset.sum_filter, Finset.ext, Iff, Sigma.mk, True, congr, Eq.trans, congrFun' and 63 more

    97 instances, coercions and auxiliary constants left out.

    Tactic trace: 18 steps

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

    lemma sum_offdiag {n k : ℕ} (x : Fin k → ℝ) (A : Fin k → Finset (Fin n))
        (hA : ∀ i, (A i).card ≠ 0) :
        ∑ t ∈ Finset.univ.sigma (fun p : Fin n => Finset.univ.erase p), vvv x A t.1 t.2 =
          ∑ i : Fin k, (((A i).card : ℝ) - 1) * x i := by
    …

    Mentions: Usa2024P6.vvv

  11. lemma Usa2024P6.sum_sq_split Splitting ∑ p, ∑ q, (v_{p,q})² into diagonal and off-diagonal parts line 191 source

    Source documentation

    Splitting ∑ p, ∑ q, (v_{p,q})² into diagonal and off-diagonal parts.

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

    Statement uses: Nat, Fin, Real, Finset, Eq, Finset.sum, Finset.univ, HPow.hPow, Usa2024P6.vvv, OfNat.ofNat, HAdd.hAdd, Finset.erase

    Proof uses: Eq.mpr, id, congrArg, Eq.symm, Finset.sum_add_distrib, Finset.sum_congr, rfl, Membership.mem, Finset.add_sum_erase, Finset.mem_univ

    26 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    lemma sum_sq_split {n k : ℕ} (x : Fin k → ℝ) (A : Fin k → Finset (Fin n)) :
        ∑ p : Fin n, ∑ q : Fin n, (vvv x A p q) ^ 2 =
          (∑ p : Fin n, (vvv x A p p) ^ 2) +
            ∑ p : Fin n, ∑ q ∈ Finset.univ.erase p, (vvv x A p q) ^ 2 := by
    …

    Mentions: Usa2024P6.vvv

  12. lemma Usa2024P6.solution_eq The answer in split form: c·S² = S²/n + (ℓ-1)²·S²/(n(n-1)) line 199 source

    Source documentation

    The answer in split form: c·S² = S²/n + (ℓ-1)²·S²/(n(n-1)).

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

    Statement uses: Nat, LT.lt, OfNat.ofNat, Real, Eq, HMul.hMul, Usa2024P6.solution, HPow.hPow, HAdd.hAdd, HDiv.hDiv, HSub.hSub

    Proof uses: Ne, cast, Not, Eq.symm, Eq.trans, congrArg, Nat.cast_zero, congrFun', Nat.cast_one, Iff.mpr, sub_ne_zero, ne_of_gt, id, Eq.mpr, inferInstance, CommGroupWithZero, GroupWithZero, Mathlib.Tactic.FieldSimp.eq_eq_cancel_eq, Mathlib.Tactic.FieldSimp.NF.eval, Mathlib.Tactic.FieldSimp.NF.cons and 97 more

    120 instances, coercions and auxiliary constants left out.

    Tactic trace: 11 steps

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

    lemma solution_eq {n ℓ : ℕ} (hn : 2 < n) (S : ℝ) :
        solution n ℓ * S ^ 2 =
          S ^ 2 / (n : ℝ) + ((ℓ : ℝ) - 1) ^ 2 * S ^ 2 / ((n : ℝ) * ((n : ℝ) - 1)) := by
    …

    Mentions: S, Usa2024P6.solution

  13. lemma Usa2024P6.solution_works The claimed constant works (first part of IsGreatest) line 211 source

    Source documentation

    The claimed constant works (first part of IsGreatest).

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

    Statement uses: Nat, LT.lt, OfNat.ofNat, LE.le, Usa2024P6.Works, Usa2024P6.solution

    Proof uses: Fin, Real, Finset, Finset.card, Ne, Eq.mpr, HMul.hMul, HPow.hPow, Finset.sum, Finset.univ, HDiv.hDiv, Inter.inter, Usa2024P6.vvv, id, Eq, congrArg, Usa2024P6.lhs_eq_sum_v_sq, HAdd.hAdd, Finset.erase, Usa2024P6.sum_sq_split and 88 more

    145 instances, coercions and auxiliary constants left out.

    Tactic trace: 47 steps

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

    lemma solution_works {n ℓ : ℕ} (hn : 2 < n) (hℓ1 : 1 ≤ ℓ) :
        Works n ℓ (solution n ℓ) := by
    …

    Mentions: Usa2024P6.Works, Usa2024P6.solution

  14. lemma Usa2024P6.diag_count Counting the elements of a finset with a weight of 1 each line 270 source

    Source documentation

    Counting the elements of a finset with a weight of 1 each.

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

    Statement uses: Nat, Finset, Fin, Eq, Real, Finset.sum, Finset.univ, ite, Membership.mem, OfNat.ofNat, Finset.card

    Proof uses: Eq.mpr, Finset.filter, id, congrArg, Eq.symm, Finset.natCast_card_filter, Finset.filter_univ_mem, Eq.refl

    35 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    lemma diag_count {n : ℕ} (B : Finset (Fin n)) :
        ∑ p : Fin n, (if p ∈ B then (1 : ℝ) else 0) = (B.card : ℝ) := by
    …
  15. lemma Usa2024P6.pair_filter_eq The pairs (p, q) with p ≠ q inside B × B, as a sigma finset line 275 source

    Source documentation

    The pairs (p, q) with p ≠ q inside B × B, as a sigma finset.

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

    Statement uses: Nat, Finset, Fin, Eq, Sigma, Finset.filter, And, Membership.mem, Sigma.fst, Sigma.snd, Finset.sigma, Finset.univ, Finset.erase

    Proof uses: Finset.ext, Iff, Eq.mpr, Sigma.mk, Ne, True, id, congr, congrArg, Eq.trans, congrFun', true_and, Iff.intro, And.intro, True.intro

    18 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

    lemma pair_filter_eq {n : ℕ} (B : Finset (Fin n)) :
        (Finset.univ.sigma (fun p : Fin n => Finset.univ.erase p)).filter
            (fun t => t.1 ∈ B ∧ t.2 ∈ B) = B.sigma (fun p => B.erase p) := by
    …
  16. lemma Usa2024P6.card_pairs Counting ordered pairs of distinct elements of B line 284 source

    Source documentation

    Counting ordered pairs of distinct elements of B.

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

    Statement uses: Nat, Finset, Fin, Eq, Real, Finset.sum, Finset.univ, Finset.erase, ite, And, Membership.mem, OfNat.ofNat, HMul.hMul, Finset.card, HSub.hSub

    Proof uses: Eq.mpr, Sigma, Finset.sigma, Sigma.fst, Sigma.snd, id, congrArg, Finset.sum_sigma', Finset.filter, Eq.symm, Finset.sum_filter, Usa2024P6.pair_filter_eq, HSMul.hSMul, Finset.sum_const, nsmul_eq_mul, mul_one, Finset.card_sigma, Nat.cast_sum, dite, EmptyCollection.emptyCollection and 29 more

    95 instances, coercions and auxiliary constants left out.

    Tactic trace: 14 steps

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

    lemma card_pairs {n : ℕ} (B : Finset (Fin n)) :
        ∑ p : Fin n, ∑ q ∈ Finset.univ.erase p, (if p ∈ B ∧ q ∈ B then (1 : ℝ) else 0) =
          (B.card : ℝ) * ((B.card : ℝ) - 1) := by
    …
  17. lemma Usa2024P6.exists_perm_eq A permutation of [n] mapping p ↦ p' and q ↦ q' simultaneously line 302 source

    Source documentation

    A permutation of [n] mapping p ↦ p' and q ↦ q' simultaneously.

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

    Statement uses: Nat, Fin, Ne, Exists, Equiv.Perm, And, Eq

    Proof uses: Exists.intro, HMul.hMul, Equiv.swap, And.intro, id, Eq.mpr, congrArg, Equiv.swap_apply_left, Equiv.swap_apply_of_ne_of_ne, dite, Equiv.swap_apply_right, Eq.trans, Eq.symm, Not, Ne.symm

    9 instances, coercions and auxiliary constants left out.

    Tactic trace: 18 steps

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

    lemma exists_perm_eq {n : ℕ} (p q p' q' : Fin n) (hpq : p ≠ q) (hpq' : p' ≠ q') :
        ∃ π : Equiv.Perm (Fin n), π p = p' ∧ π q = q' := by
    …
  18. lemma Usa2024P6.finsetCongr_mem_powersetCard The image of an ℓ-subset under a permutation is still an ℓ-subset line 318 source

    Source documentation

    The image of an ℓ-subset under a permutation is still an ℓ-subset.

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

    Statement uses: Nat, Equiv.Perm, Fin, Finset, Membership.mem, Finset.powersetCard, Finset.univ, Equiv, Equiv.finsetCongr

    Proof uses: Eq.mpr, And, LE.le, Eq, Finset.card, id, congrArg, propext, Finset.mem_powersetCard, And.intro, Finset.subset_univ, Finset.map, Equiv.toEmbedding, Equiv.finsetCongr_apply, Finset.card_map, And.right, Eq.mp, Eq.refl

    15 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

    lemma finsetCongr_mem_powersetCard {n ℓ : ℕ} (π : Equiv.Perm (Fin n)) (B : Finset (Fin n))
        (hB : B ∈ Finset.powersetCard ℓ (Finset.univ : Finset (Fin n))) :
        (Equiv.finsetCongr π) B ∈ Finset.powersetCard ℓ (Finset.univ : Finset (Fin n)) := by
    …
  19. lemma Usa2024P6.cntS_single The number of ℓ-subsets containing a given point does not depend on the point line 326 source

    Source documentation

    The number of ℓ-subsets containing a given point does not depend on the point.

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

    Statement uses: Nat, Fin, Eq, Finset.card, Finset, Finset.filter, Membership.mem, Finset.powersetCard, Finset.univ

    Proof uses: Finset.card_bij', Equiv, Equiv.finsetCongr, Equiv.swap, Eq.mpr, And, id, congrArg, propext, Finset.mem_filter, And.intro, Usa2024P6.finsetCongr_mem_powersetCard, And.left, Eq.mp, Finset.map, Equiv.toEmbedding, Equiv.finsetCongr_apply, Exists, Function.Embedding, Finset.mem_map and 11 more

    14 instances, coercions and auxiliary constants left out.

    Tactic trace: 25 steps

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

    lemma cntS_single {n ℓ : ℕ} (p q : Fin n) :
        ((Finset.powersetCard ℓ (Finset.univ : Finset (Fin n))).filter
            (fun B => p ∈ B)).card =
          ((Finset.powersetCard ℓ (Finset.univ : Finset (Fin n))).filter
            (fun B => q ∈ B)).card := by
    …
  20. lemma Usa2024P6.cntS_pair The number of ℓ-subsets containing two given distinct points does not depend on the pair of points line 358 source

    Source documentation

    The number of ℓ-subsets containing two given distinct points does not depend on the pair of points.

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

    Statement uses: Nat, Fin, Ne, Eq, Finset.card, Finset, Finset.filter, And, Membership.mem, Finset.powersetCard, Finset.univ

    Proof uses: Equiv.Perm, Exists, Usa2024P6.exists_perm_eq, Finset.card_bij', Equiv, Equiv.finsetCongr, Equiv.symm, Eq.mpr, id, congrArg, propext, Finset.mem_filter, And.intro, Usa2024P6.finsetCongr_mem_powersetCard, And.left, Eq.mp, Eq.symm, Finset.map, Equiv.toEmbedding, Equiv.finsetCongr_apply and 13 more

    18 instances, coercions and auxiliary constants left out.

    Tactic trace: 38 steps

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

    lemma cntS_pair {n ℓ : ℕ} (p q p' q' : Fin n) (hpq : p ≠ q) (hpq' : p' ≠ q') :
        ((Finset.powersetCard ℓ (Finset.univ : Finset (Fin n))).filter
            (fun B => p ∈ B ∧ q ∈ B)).card =
          ((Finset.powersetCard ℓ (Finset.univ : Finset (Fin n))).filter
            (fun B => p' ∈ B ∧ q' ∈ B)).card := by
    …
  21. lemma Usa2024P6.cnt_bridge Reindexing: counting indices i with p, q ∈ A i equals counting sets of the family containing p, q, when A enumerates the family line 395 source

    Source documentation

    Reindexing: counting indices i with p, q ∈ A i equals counting sets of the family containing p, q, when A enumerates the family.

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

    Statement uses: Nat, Finset, Fin, Membership.mem, Function.Injective, Exists, Eq, Finset.card, Finset.filter, And, Finset.univ

    Proof uses: Finset.card_bij, Eq.mpr, id, congrArg, propext, Finset.mem_filter, And.intro, And.right, Eq.mp, And.left, Exists.intro, Iff.mpr, Finset.mem_univ, rfl

    14 instances, coercions and auxiliary constants left out.

    Tactic trace: 13 steps

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

    lemma cnt_bridge {n k : ℕ} (s : Finset (Finset (Fin n))) (A : Fin k → Finset (Fin n))
        (hAmem : ∀ i, A i ∈ s) (hAinj : Function.Injective A)
        (hAsurj : ∀ B ∈ s, ∃ i, A i = B) (p q : Fin n) :
        (Finset.univ.filter (fun i => p ∈ A i ∧ q ∈ A i)).card =
          (s.filter (fun B => p ∈ B ∧ q ∈ B)).card := by
    …
  22. lemma Usa2024P6.cnt_bridge1 Reindexing, single-point version line 412 source

    Source documentation

    Reindexing, single-point version.

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

    Statement uses: Nat, Finset, Fin, Membership.mem, Function.Injective, Exists, Eq, Finset.card, Finset.filter, Finset.univ

    Proof uses: Finset.card_bij, Eq.mpr, And, id, congrArg, propext, Finset.mem_filter, And.intro, And.right, Eq.mp, And.left, Exists.intro, Iff.mpr, Finset.mem_univ, rfl

    12 instances, coercions and auxiliary constants left out.

    Tactic trace: 13 steps

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

    lemma cnt_bridge1 {n k : ℕ} (s : Finset (Finset (Fin n))) (A : Fin k → Finset (Fin n))
        (hAmem : ∀ i, A i ∈ s) (hAinj : Function.Injective A)
        (hAsurj : ∀ B ∈ s, ∃ i, A i = B) (p : Fin n) :
        (Finset.univ.filter (fun i => p ∈ A i)).card =
          (s.filter (fun B => p ∈ B)).card := by
    …
  23. lemma Usa2024P6.solution_le_of_works Documented declaration: solution_le_of_works line 431 source

    Source documentation

    No constant larger than solution n ℓ works: equality is attained (in the limit sense of the inequality) by taking all ℓ-subsets once with weight 1 (second part of IsGreatest).

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

    Statement uses: Nat, LT.lt, OfNat.ofNat, LE.le, Real, Usa2024P6.Works, Usa2024P6.solution

    Proof uses: Finset, Fin, Finset.powersetCard, Finset.univ, Eq, rfl, Finset.card, Nat.choose, Eq.mpr, id, congrArg, Finset.card_powersetCard, Fintype.card, Finset.card_univ, Fintype.card_fin, Eq.refl, Eq.mp, Nat.choose_pos, Equiv, Subtype and 167 more

    161 instances, coercions and auxiliary constants left out.

    Tactic trace: 118 steps

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

    lemma solution_le_of_works {n ℓ : ℕ} (hn : 2 < n) (hℓ1 : 1 ≤ ℓ) (hℓn : ℓ ≤ n) (c : ℝ)
        (hc : Works n ℓ c) : c ≤ solution n ℓ := by
    …

    Mentions: Usa2024P6.Works, Usa2024P6.solution

  24. problem Usa2024P6.usa2024_p6 line 586 source

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

    Statement uses: Nat, LT.lt, OfNat.ofNat, And, LE.le, IsGreatest, Real, Set.ofPred, Usa2024P6.Works, Usa2024P6.solution

    Proof uses: And.intro, Membership.mem, Set, upperBounds, Usa2024P6.solution_works, And.left, Usa2024P6.solution_le_of_works, And.right

    9 instances, coercions and auxiliary constants left out.

    Tactic trace: 6 steps

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