Compfiles/Usa2016P1.lean
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
7 declarations, 0 contain sorry, 0 declared as axioms
USA Mathematical Olympiad 2016, Problem 1
Let X₁, X₂, …, X₁₀₀ be a sequence of mutually distinct nonempty subsets of a set S. Any two sets Xᵢ and Xᵢ₊₁ are disjoint and their union is not the whole set S, that is, Xᵢ ∩ Xᵢ₊₁ = ∅ and Xᵢ ∪ Xᵢ₊₁ ≠ S, for all i ∈ {1, …, 99}. Find the smallest possible number of elements in S.
Imports (5)
Imported by 1 file
- def
Usa2016P1.HasChainDocumented declaration: HasChain line 35 sourceSource documentation
HasChain nmeans that ann-element set (which we may take to beFin n) admits a sequence of 100 mutually distinct nonempty subsets in which any two consecutive sets are disjoint and do not cover the whole set.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NatProof uses:
Exists,Fin,OfNat.ofNat,Finset,And,Finset.Nonempty,Eq,Disjoint,Fin.castSucc,Fin.succ,Ne,Union.union,Finset.univ6 instances, coercions and auxiliary constants left out.
def HasChain (n : ℕ) : Prop := …
- def
Usa2016P1.witnessAn explicit chain of 100 subsets of an 8-element set line 49 sourceSource documentation
An explicit chain of 100 subsets of an 8-element set. (Obtained from the inductive construction of the official solution: start from the chain
34, 1, 23, 4, 12, 3, 14, 2, 13on a 4-element set and repeatedly duplicate the chain, glue the two copies together with the empty set in between, and insert a new element into alternating positions.)standard axioms: Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,FinsetProof uses:
Matrix.vecCons,Insert.insert,Singleton.singleton,Matrix.vecEmpty7 instances, coercions and auxiliary constants left out.
def witness : Fin 100 → Finset (Fin 8) := ![ …
- lemma
Usa2016P1.hasChain_eightThe explicit witness verifies thatHasChain 8holds line 152 sourceSource documentation
The explicit witness verifies that
HasChain 8holds.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Usa2016P1.HasChain,
OfNat.ofNat,NatProof uses:
Exists.intro,Fin,Finset,And,Finset.Nonempty,Eq,Disjoint,Fin.castSucc,Fin.succ,Ne,Union.union,Finset.univ, Usa2016P1.witness,And.intro10 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
lemma hasChain_eight : HasChain 8 := …
Mentions: Usa2016P1.HasChain
- lemma
Usa2016P1.not_hasChain_of_le_sixAny chain on ann-element set uses at most2 ^ n - 1nonempty subsets, son ≤ 6is impossible since2 ^ 6 - 1 < 100line 157 sourceSource documentation
Any chain on an
n-element set uses at most2 ^ n - 1nonempty subsets, son ≤ 6is impossible since2 ^ 6 - 1 < 100.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,Not, Usa2016P1.HasChainProof uses:
Fin,Finset,And,Finset.Nonempty,Eq,Disjoint,Fin.castSucc,Fin.succ,Ne,Union.union,Finset.univ,False,Finset.image,Finset.erase,EmptyCollection.emptyCollection,Membership.mem,Exists,Eq.mp,congrArg,propextand 24 more34 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
lemma not_hasChain_of_le_six {n : ℕ} (hn : n ≤ 6) : ¬ HasChain n := by …Mentions: Usa2016P1.HasChain
- lemma
Usa2016P1.not_hasChain_sevenThe main combinatorial estimate: no chain exists on a 7-element set line 178 sourceSource documentation
The main combinatorial estimate: no chain exists on a 7-element set. Sets of size at least 4 must be preceded by sets of size at most 2, and there are only 28 nonempty subsets of size at most 2 and 35 subsets of size 3, so a chain on 7 elements has length at most
28 + 35 + (28 + 1) = 92 < 100.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Not, Usa2016P1.HasChain,OfNat.ofNat,NatProof uses:
Fin,Finset,And,Finset.Nonempty,Eq,Disjoint,Fin.castSucc,Fin.succ,Ne,Union.union,Finset.univ,False,LE.le,HAdd.hAdd,Finset.card,LT.lt,Iff.mpr,Finset.ssubset_univ_iff,Finset.card_lt_card,Eq.mprand 63 more52 instances, coercions and auxiliary constants left out.
Tactic trace: 100 steps
Open to load the checked before-and-after goal states.
lemma not_hasChain_seven : ¬ HasChain 7 := by …
Mentions: Usa2016P1.HasChain
- determine
Usa2016P1.solution_valueline 289 sourceno axioms what this means
Statement uses:
NatProof uses:
OfNat.ofNat1 instances, coercions and auxiliary constants left out.
- problem
Usa2016P1.usa2016_p1line 291 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
IsLeast,Nat,Set.ofPred, Usa2016P1.HasChain, Usa2016P1.solution_valueProof uses:
Eq,OfNat.ofNat,rfl,And.intro,Membership.mem,Set,lowerBounds, Usa2016P1.hasChain_eight,Eq.mpr,LE.le,id,congrArg,propext,mem_lowerBounds,Decidable.byContradiction,Not,LT.lt,Or,False,lt_or_geand 4 more16 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.