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

3 declarations, 0 contain sorry, 0 declared as axioms

USA Mathematical Olympiad 1989, Problem 2

The 20 members of a local tennis club have scheduled exactly 14 two-person games among themselves, with each member playing in at least one game. Prove that within this schedule can be found a set of six games with 12 distinct players.

Imports (3)
Imported by 1 file
  1. lemma Usa1989P2.incidenceFinset_nonempty_of_degree_pos Every vertex of positive degree is incident to at least one edge line 48 source

    Source documentation

    Every vertex of positive degree is incident to at least one edge.

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

    Statement uses: Fintype, SimpleGraph, DecidableRel, SimpleGraph.Adj, LE.le, Nat, OfNat.ofNat, SimpleGraph.degree, Membership.mem, Set, SimpleGraph.neighborSet, Finset.Nonempty, Sym2, SimpleGraph.incidenceFinset

    Proof uses: Eq.mpr, LT.lt, Finset.card, id, Eq, congrArg, Eq.symm, propext, Finset.card_pos, SimpleGraph.card_incidenceFinset_eq_degree

    13 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    lemma incidenceFinset_nonempty_of_degree_pos (G : SimpleGraph V) [DecidableRel G.Adj]
        {v : V} (hv : 1 ≤ G.degree v) : (G.incidenceFinset v).Nonempty := by
    …
  2. theorem Usa1989P2.exists_pairwise_disjoint_edges In a finite simple graph with minimum degree at least one, there is a set of pairwise vertex-disjoint edges of size at least |V| - |E| line 55 source

    Source documentation

    In a finite simple graph with minimum degree at least one, there is a set of pairwise vertex-disjoint edges of size at least |V| - |E|.

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

    Statement uses: Fintype, DecidableEq, SimpleGraph, DecidableRel, SimpleGraph.Adj, LE.le, Nat, OfNat.ofNat, SimpleGraph.degree, Membership.mem, Set, SimpleGraph.neighborSet, Exists, Finset, Sym2, And, SimpleGraph.edgeFinset, HSub.hSub, Fintype.card, Finset.card and 2 more

    Proof uses: Finset.Nonempty, SimpleGraph.incidenceFinset, Usa1989P2.incidenceFinset_nonempty_of_degree_pos, Exists.choose, Exists.choose_spec, Finset.biUnion, Finset.univ, Finset.erase, Eq, rfl, Eq.mp, congrArg, propext, Finset.mem_biUnion, SimpleGraph.incidenceFinset_subset, And.right, Iff.mp, Finset.mem_erase, HAdd.hAdd, HMul.hMul and 36 more

    52 instances, coercions and auxiliary constants left out.

    Tactic trace: 36 steps

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

    theorem exists_pairwise_disjoint_edges (G : SimpleGraph V) [DecidableRel G.Adj]
        (hdeg : ∀ v : V, 1 ≤ G.degree v) :
        ∃ s : Finset (Sym2 V), s ⊆ G.edgeFinset ∧
          Fintype.card V - #G.edgeFinset ≤ #s ∧
          ∀ e₁ ∈ s, ∀ e₂ ∈ s, e₁ ≠ e₂ → ∀ v : V, ¬ (v ∈ e₁ ∧ v ∈ e₂) := by
    …
  3. problem Usa1989P2.usa1989_p2 line 111 source

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

    Statement uses: SimpleGraph, Fin, OfNat.ofNat, Nat, DecidableRel, SimpleGraph.Adj, Eq, Finset.card, Sym2, SimpleGraph.edgeFinset, LE.le, SimpleGraph.degree, Membership.mem, Set, SimpleGraph.neighborSet, Exists, Finset, And, Finset.biUnion, Sym2.toFinset

    Proof uses: HSub.hSub, Fintype.card, Ne, Not, Usa1989P2.exists_pairwise_disjoint_edges, Finset.exists_subset_card_eq, Eq.mp, congrArg, Fintype.card_fin, Exists.intro, And.intro, LE.le.trans, Set.PairwiseDisjoint, Iff.mpr, Disjoint, Finset.disjoint_left, Iff.mp, Finset.mem_coe, propext, Sym2.mem_toFinset and 16 more

    40 instances, coercions and auxiliary constants left out.

    Tactic trace: 16 steps

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