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

14 declarations, 0 contain sorry, 0 declared as axioms

International Mathematical Olympiad 2007, Problem 3

In a mathematical competition some competitors are (mutual) friends. Call a group of competitors a clique if each two of them are friends. Given that the largest size of a clique is even, prove that the competitors can be arranged into two rooms such that the largest size of a clique contained in one room is the same as the largest size of a clique contained in the other room.

Imports (2)
Imported by 1 file
  1. def Imo2007P3.maxCliqueCard The largest size of a clique of the graph G all of whose vertices lie in A line 32 source

    Source documentation

    The largest size of a clique of the graph G all of whose vertices lie in A.

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

    Statement uses: SimpleGraph, Finset, Nat

    Proof uses: SupSet.sSup, Set.ofPred, Exists, And, LE.le, SimpleGraph.IsClique, Eq, Finset.card

    6 instances, coercions and auxiliary constants left out.

    noncomputable def maxCliqueCard {V : Type*} (G : SimpleGraph V) (A : Finset V) : ℕ :=
    …
  2. lemma Imo2007P3.bddAbove_cliqueCard line 41 source

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

    Statement uses: SimpleGraph, Finset, BddAbove, Nat, Set.ofPred, Exists, And, LE.le, SimpleGraph.IsClique, Eq, Finset.card

    Proof uses: Exists.intro, Membership.mem, Set, upperBounds, Finset.card_le_card

    16 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

  3. lemma Imo2007P3.nonempty_cliqueCard line 47 source

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

    Statement uses: SimpleGraph, Finset, Set.Nonempty, Nat, Set.ofPred, Exists, And, LE.le, SimpleGraph.IsClique, Eq, Finset.card

    Proof uses: Exists.intro, Membership.mem, Set, OfNat.ofNat, EmptyCollection.emptyCollection, And.intro, Finset.empty_subset, Eq.mpr, id, congrArg, Finset.coe_empty, Set.pairwise_empty, SimpleGraph.Adj, Finset.card_empty

    14 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

  4. lemma Imo2007P3.card_le_maxCliqueCard line 52 source

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

    Statement uses: SimpleGraph, Finset, LE.le, SimpleGraph.IsClique, Nat, Finset.card, Imo2007P3.maxCliqueCard

    Proof uses: le_csSup, Set.ofPred, Exists, And, Eq, Imo2007P3.bddAbove_cliqueCard, Exists.intro, And.intro, rfl

    14 instances, coercions and auxiliary constants left out.

  5. lemma Imo2007P3.maxCliqueCard_le line 56 source

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

    Statement uses: SimpleGraph, Finset, Nat, LE.le, SimpleGraph.IsClique, Finset.card, Imo2007P3.maxCliqueCard

    Proof uses: csSup_le, Set.ofPred, Exists, And, Eq, Imo2007P3.nonempty_cliqueCard, Membership.mem, Set

    22 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

  6. lemma Imo2007P3.maxCliqueCard_le_card line 63 source

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

    Statement uses: SimpleGraph, Finset, LE.le, Nat, Imo2007P3.maxCliqueCard, Finset.card

    Proof uses: Imo2007P3.maxCliqueCard_le, SimpleGraph.IsClique, Finset.card_le_card

    6 instances, coercions and auxiliary constants left out.

  7. lemma Imo2007P3.maxCliqueCard_eq_card_of_isClique line 66 source

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

    Statement uses: SimpleGraph, Finset, SimpleGraph.IsClique, Eq, Nat, Imo2007P3.maxCliqueCard, Finset.card

    Proof uses: le_antisymm, Imo2007P3.maxCliqueCard_le_card, Imo2007P3.card_le_maxCliqueCard, Finset.Subset.refl

    5 instances, coercions and auxiliary constants left out.

  8. lemma Imo2007P3.maxCliqueCard_mono line 70 source

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

    Statement uses: SimpleGraph, Finset, LE.le, Nat, Imo2007P3.maxCliqueCard

    Proof uses: Imo2007P3.maxCliqueCard_le, SimpleGraph.IsClique, Imo2007P3.card_le_maxCliqueCard, LE.le.trans

    9 instances, coercions and auxiliary constants left out.

  9. lemma Imo2007P3.isClique_of_subset line 74 source

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

    Statement uses: SimpleGraph, Finset, LE.le, SimpleGraph.IsClique

    Proof uses: SimpleGraph.IsClique.subset, Iff.mpr, Set, Finset.coe_subset

    11 instances, coercions and auxiliary constants left out.

  10. lemma Imo2007P3.isClique_union line 78 source

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

    Statement uses: SimpleGraph, Finset, SimpleGraph.IsClique, Membership.mem, Ne, SimpleGraph.Adj, Union.union, Set

    Proof uses: Or, Eq.mp, congrArg, propext, Set.mem_union, SimpleGraph.Adj.symm, Ne.symm

    10 instances, coercions and auxiliary constants left out.

    Tactic trace: 12 steps

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

  11. lemma Imo2007P3.maxCliqueCard_insert_le line 88 source

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

    Statement uses: SimpleGraph, DecidableEq, Finset, LE.le, Nat, Imo2007P3.maxCliqueCard, Insert.insert, HAdd.hAdd, OfNat.ofNat

    Proof uses: Imo2007P3.maxCliqueCard_le, SimpleGraph.IsClique, dite, Finset.card, Membership.mem, Finset.erase, Iff.mp, Finset.subset_insert_iff, Imo2007P3.card_le_maxCliqueCard, Imo2007P3.isClique_of_subset, Finset.erase_subset, Eq, Eq.symm, Finset.card_erase_add_one, Not, Finset.subset_insert_iff_of_notMem, LE.le.trans

    20 instances, coercions and auxiliary constants left out.

    Tactic trace: 12 steps

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

  12. lemma Imo2007P3.maxCliqueCard_erase_le line 100 source

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

    Statement uses: SimpleGraph, DecidableEq, Finset, LE.le, Nat, Imo2007P3.maxCliqueCard, HAdd.hAdd, Finset.erase, OfNat.ofNat

    Proof uses: dite, Membership.mem, Insert.insert, Imo2007P3.maxCliqueCard_insert_le, Eq.mp, congrArg, Finset.insert_erase, Not, Eq.mpr, id, Eq, Finset.erase_eq_of_notMem

    13 instances, coercions and auxiliary constants left out.

    Tactic trace: 7 steps

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

  13. lemma Imo2007P3.exists_isClique_card_eq line 108 source

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

    Statement uses: SimpleGraph, Finset, Exists, And, LE.le, SimpleGraph.IsClique, Eq, Nat, Finset.card, Imo2007P3.maxCliqueCard

    Proof uses: SupSet.sSup, Set.ofPred, Membership.mem, Set, Nat.sSup_mem, Imo2007P3.nonempty_cliqueCard, Imo2007P3.bddAbove_cliqueCard, Exists.intro, And.intro

    14 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

  14. problem Imo2007P3.imo2007_p3 line 117 source

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

    Statement uses: Fintype, DecidableEq, SimpleGraph, Even, Nat, Imo2007P3.maxCliqueCard, Finset.univ, Exists, Finset, And, Disjoint, Eq, Union.union

    Proof uses: HAdd.hAdd, LE.le, SimpleGraph.IsClique, Finset.card, Imo2007P3.exists_isClique_card_eq, HMul.hMul, OfNat.ofNat, Eq.trans, Eq.mp, congrArg, Eq.symm, Nat.two_mul, SDiff.sdiff, Compl.compl, Finset.exists_subset_card_eq, Exists.intro, And.intro, Imo2007P3.maxCliqueCard_eq_card_of_isClique, Imo2007P3.isClique_of_subset, Finset.sdiff_subset and 91 more

    80 instances, coercions and auxiliary constants left out.

    Tactic trace: 290 steps (first 200 of 290)

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