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

USA Mathematical Olympiad 1978, Problem 5

There are 9 delegates at a conference, each speaking at most three languages. Given any three delegates, at least 2 speak a common language. Show that there are three delegates with a common language.

Imports (2)
Imported by 1 file
  1. abbrev Usa1978P5.Share Delegate a and delegate b speak a common language line 27 source

    Source documentation

    Delegate a and delegate b speak a common language.

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

    Statement uses: Fin, OfNat.ofNat, Nat, Finset

    Proof uses: Exists, And, Membership.mem

    4 instances, coercions and auxiliary constants left out.

    abbrev Share {L : Type*} (speaks : Fin 9 → Finset L) (a b : Fin 9) : Prop :=
    …
  2. abbrev Usa1978P5.SharedWith The delegates other than d that share a language with d line 35 source

    Source documentation

    The delegates other than d that share a language with d.

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

    Statement uses: Fin, OfNat.ofNat, Nat, Finset

    Proof uses: Finset.filter, And, Ne, Usa1978P5.Share, Eq, Membership.mem, Classical.propDecidable, Finset.univ

    10 instances, coercions and auxiliary constants left out.

    noncomputable abbrev SharedWith {L : Type*} (speaks : Fin 9 → Finset L) (d : Fin 9) :
        Finset (Fin 9) :=
    …
  3. theorem Usa1978P5.card_sharedWith_le Documented declaration: card_sharedWith_le line 44 source

    Source documentation

    Assuming that no three delegates share a common language, a delegate d can share a language with at most three other delegates: among any four delegates sharing a language with d, two of them would share the same language with d by the pigeonhole principle, since d speaks at most three languages, and those two together with d would be three delegates with a common language.

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

    Statement uses: Fin, OfNat.ofNat, Nat, Finset, LE.le, Finset.card, Not, Exists, And, Ne, Membership.mem, Usa1978P5.SharedWith

    Proof uses: Decidable.byContradiction, Subtype, And.right, Usa1978P5.Share, Finset.univ, Iff.mp, Finset.filter, Eq, Classical.propDecidable, Finset.mem_filter, Subtype.property, Finset.attach, False, Finset.exists_ne_map_eq_of_card_lt_of_maps_to, Eq.mpr, LT.lt, id, congrArg, Finset.card_attach, lt_of_le_of_lt and 9 more

    27 instances, coercions and auxiliary constants left out.

    Tactic trace: 14 steps

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

    theorem card_sharedWith_le {L : Type*} (speaks : Fin 9 → Finset L)
        (hthree : ∀ d : Fin 9, (speaks d).card ≤ 3)
        (hnothree : ¬∃ a b c : Fin 9, a ≠ b ∧ a ≠ c ∧ b ≠ c ∧
          ∃ l : L, l ∈ speaks a ∧ l ∈ speaks b ∧ l ∈ speaks c)
        (d : Fin 9) : (SharedWith speaks d).card ≤ 3 := by
    …

    Mentions: Usa1978P5.SharedWith

  4. problem Usa1978P5.usa1978_p5 line 67 source

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

    Statement uses: Fin, OfNat.ofNat, Nat, Finset, LE.le, Finset.card, Ne, Or, Usa1978P5.Share, Exists, And, Membership.mem

    Proof uses: Decidable.byContradiction, Eq, Classical.propDecidable, Not, Usa1978P5.SharedWith, Usa1978P5.card_sharedWith_le, Nonempty, False, Nonempty.intro, Union.union, Singleton.singleton, HAdd.hAdd, Finset.card_union_le, Eq.mp, congrArg, Finset.card_singleton, Finset.univ, Finset.card_le_card, Eq.trans, binderNameHint and 21 more

    32 instances, coercions and auxiliary constants left out.

    Tactic trace: 41 steps

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