FormalConjecturesForMathlib/Combinatorics/Hypergraph/Finite.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 project documentation, Formal Conjectures paper, arXiv v1
33 declarations, 0 contain sorry, 0 declared as axioms
Finite hypergraphs and block designs
Finite hypergraphs are finite families of finite vertex sets. This file supplies uniformity,
weak vertex coloring, independent sets, transversals, designs, and finite extremal counts.
Finset.toHypergraph connects this presentation to Mathlib's Hypergraph.
The ground type includes isolated vertices. The support is H.biUnion id when only incident
vertices should be counted. Colorings require two differently colored vertices in every edge;
empty and singleton edges therefore admit no proper coloring.
Imports (6)
Imported by 3 files
- def
Set.HasFiniteTransversalA family of finite sets has a transversal with at mostkvertices line 42 sourceSource documentation
A family of finite sets has a transversal with at most
kvertices.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Set,Finset,NatProof uses:
Exists,And,LE.le,Finset.card,Membership.mem4 instances, coercions and auxiliary constants left out.
def HasFiniteTransversal {V : Type*} (F : Set (Finset V)) (k : ℕ) : Prop := … - def
Finset.IsUniformEvery edge has exactlyrvertices line 52 sourceSource documentation
Every edge has exactly
rvertices.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,NatProof uses:
Membership.mem,Eq,Finset.card2 instances, coercions and auxiliary constants left out.
def IsUniform (H : Finset (Finset V)) (r : ℕ) : Prop := ∀ e ∈ H, e.card = r
- def
Finset.toHypergraphThe hypergraph with edge familyHand ground vertex setSline 55 sourceSource documentation
The hypergraph with edge family
Hand ground vertex setS.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Membership.mem,LE.le,HypergraphProof uses: Hypergraph.ofEdgeFamily
11 instances, coercions and auxiliary constants left out.
def toHypergraph (H : Finset (Finset V)) (S : Finset V) (h : ∀ e ∈ H, e ⊆ S) : Hypergraph V := … - theorem
Finset.isUniform_toHypergraph_iffConversion preserves uniformity line 62 sourceSource documentation
Conversion preserves uniformity.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Membership.mem,LE.le,Nat,Iff, Hypergraph.IsUniform, Finset.toHypergraph, Finset.IsUniformProof uses: Hypergraph.isUniform_ofEdgeFamily_iff
11 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem isUniform_toHypergraph_iff (H : Finset (Finset V)) (S : Finset V) (h : ∀ e ∈ H, e ⊆ S) (r : ℕ) : (H.toHypergraph S h).IsUniform r ↔ H.IsUniform r := by …Mentions: Finset.IsUniform
- def
Finset.IsProperHypergraphColoringA weak proper coloring has no monochromatic edge line 68 sourceSource documentation
A weak proper coloring has no monochromatic edge.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
FinsetProof uses:
Membership.mem,Exists,And,Ne2 instances, coercions and auxiliary constants left out.
def IsProperHypergraphColoring (H : Finset (Finset V)) {C : Type*} (c : V → C) : Prop := …Mentions: c
- theorem
Finset.isProperColoring_toHypergraph_iffConversion preserves weak proper colorings line 74 sourceSource documentation
Conversion preserves weak proper colorings.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Membership.mem,LE.le,Iff, Hypergraph.IsProperColoring, Finset.toHypergraph, Finset.IsProperHypergraphColoringProof uses: Hypergraph.isProperColoring_ofEdgeFamily_iff
11 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem isProperColoring_toHypergraph_iff {C : Type*} (H : Finset (Finset V)) (S : Finset V) (h : ∀ e ∈ H, e ⊆ S) (f : V → C) : (H.toHypergraph S h).IsProperColoring f ↔ H.IsProperHypergraphColoring f := by … - def
Finset.HypergraphColorableThe edge family admits a weak proper coloring withkcolors line 80 sourceSource documentation
The edge family admits a weak proper coloring with
kcolors.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,NatProof uses:
Exists,Fin, Finset.IsProperHypergraphColoringdef HypergraphColorable (H : Finset (Finset V)) (k : ℕ) : Prop := …
- theorem
Finset.hypergraphColorable_two_iffTwo-colorability agrees with the existing Property B predicate line 85 sourceSource documentation
Two-colorability agrees with the existing Property B predicate.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Iff, Finset.HypergraphColorable,OfNat.ofNat,Nat, Finset.HasPropertyBProof uses:
Iff.rfl2 instances, coercions and auxiliary constants left out.
theorem hypergraphColorable_two_iff (H : Finset (Finset V)) : H.HypergraphColorable 2 ↔ H.HasPropertyB := Iff.rfl - def
Finset.HasHypergraphChromaticNumberThe weak chromatic number is exactlykline 89 sourceSource documentation
The weak chromatic number is exactly
k.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,NatProof uses:
And, Finset.HypergraphColorable,LT.lt,Not1 instances, coercions and auxiliary constants left out.
def HasHypergraphChromaticNumber (H : Finset (Finset V)) (k : ℕ) : Prop := …
- def
Finset.IsHypergraphIndependentNo edge is contained in this set of vertices line 93 sourceSource documentation
No edge is contained in this set of vertices.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
FinsetProof uses:
Membership.mem,Not,LE.le5 instances, coercions and auxiliary constants left out.
def IsHypergraphIndependent (H : Finset (Finset V)) (S : Finset V) : Prop := …
- def
Finset.hypergraphDegreeThe number of hyperedges containing a vertex line 97 sourceSource documentation
The number of hyperedges containing a vertex.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,Finset,NatProof uses:
Finset.card,Finset.filter,Membership.mem3 instances, coercions and auxiliary constants left out.
def hypergraphDegree (H : Finset (Finset V)) (v : V) : ℕ := #{e ∈ H | v ∈ e} - def
Finset.IsLinearHypergraphDistinct edges intersect in at most one vertex line 100 sourceSource documentation
Distinct edges intersect in at most one vertex.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,FinsetProof uses:
Set.Pairwise,LE.le,Nat,Finset.card,Inter.inter,OfNat.ofNat5 instances, coercions and auxiliary constants left out.
def IsLinearHypergraph (H : Finset (Finset V)) : Prop := …
- def
Finset.ContainsSubgraphSomemvertices span at leastkedges line 104 sourceSource documentation
Some
mvertices span at leastkedges.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,Finset,NatProof uses:
Exists,And,Eq,Finset.card,LE.le,Finset.filter5 instances, coercions and auxiliary constants left out.
def ContainsSubgraph (H : Finset (Finset V)) (m k : ℕ) : Prop := …
- def
Finset.hypergraphInduceThe edges induced on a vertex set line 108 sourceSource documentation
The edges induced on a vertex set.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,FinsetProof uses:
Finset.filter,LE.le4 instances, coercions and auxiliary constants left out.
def hypergraphInduce (H : Finset (Finset V)) (S : Finset V) : Finset (Finset V) := …
- def
Finset.ContainsCompleteHypergraphA copy of the completer-uniform hypergraph onkvertices line 112 sourceSource documentation
A copy of the complete
r-uniform hypergraph onkvertices.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,NatProof uses:
Exists,And,Eq,Finset.card,LE.le,Finset.powersetCard3 instances, coercions and auxiliary constants left out.
def ContainsCompleteHypergraph (H : Finset (Finset V)) (r k : ℕ) : Prop := …
- def
Finset.HasHypergraphMatchingA collection ofkpairwise vertex-disjoint edges line 116 sourceSource documentation
A collection of
kpairwise vertex-disjoint edges.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,NatProof uses:
Exists,And,LE.le,Eq,Finset.card,Set.Pairwise,Disjoint6 instances, coercions and auxiliary constants left out.
def HasHypergraphMatching (H : Finset (Finset V)) (k : ℕ) : Prop := …
- def
Finset.IsBlockDesignEveryt-set of ground vertices lies in exactly one block line 120 sourceSource documentation
Every
t-set of ground vertices lies in exactly one block.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,NatProof uses:
And, Finset.IsUniform,Eq,Finset.card,ExistsUnique,Membership.mem,LE.le5 instances, coercions and auxiliary constants left out.
def IsBlockDesign (H : Finset (Finset V)) (t k : ℕ) : Prop := …
- def
Finset.IsPairwiseBalancedDesignA pairwise balanced design, permitting a block equal to the ground set line 124 sourceSource documentation
A pairwise balanced design, permitting a block equal to the ground set.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
FinsetProof uses:
And,Membership.mem,LE.le,Nat,OfNat.ofNat,Finset.card,Eq,ExistsUnique7 instances, coercions and auxiliary constants left out.
def IsPairwiseBalancedDesign (H : Finset (Finset V)) : Prop := …
- def
Finset.blockSizeProfileThe nondecreasing block-size sequence, retaining repeated sizes line 129 sourceSource documentation
The nondecreasing block-size sequence, retaining repeated sizes.
standard axioms: Quot.sound, propext what this means
Statement uses:
Finset,List,NatProof uses:
Multiset.sort,Multiset.map,Finset.card,Finset.val,LE.le7 instances, coercions and auxiliary constants left out.
def blockSizeProfile (H : Finset (Finset V)) : List ℕ := …
- def
Finset.IsCompleteHypergraphDecompositionPartition into completer-graphs with eitherrorr+1vertices line 133 sourceSource documentation
Partition into complete
r-graphs with eitherrorr+1vertices.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,Finset,NatProof uses:
And,Membership.mem,Or,Eq,Finset.card,HAdd.hAdd,OfNat.ofNat,Finset.biUnion,Finset.powersetCard,Set.Pairwise,Disjoint9 instances, coercions and auxiliary constants left out.
def IsCompleteHypergraphDecomposition (H : Finset (Finset V)) (r : ℕ) (D : Finset (Finset V)) : Prop := … - def
Finset.ContainsCompletePartiteHypergraphA completet-partitet-uniform hypergraph withrvertices in each part line 140 sourceSource documentation
A complete
t-partitet-uniform hypergraph withrvertices in each part.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,Finset,NatProof uses:
Exists,Function.Embedding,Prod,Fin,Membership.mem,Finset.image,Prod.mk,Finset.univ5 instances, coercions and auxiliary constants left out.
def ContainsCompletePartiteHypergraph (H : Finset (Finset V)) (t r : ℕ) : Prop := …
- def
Finset.HasRepeatedDisjointUnionTwo distinct disjoint pairs of edges with the same union line 145 sourceSource documentation
Two distinct disjoint pairs of edges with the same union.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,FinsetProof uses:
Exists,And,Membership.mem,Disjoint,Eq,Union.union,Ne5 instances, coercions and auxiliary constants left out.
def HasRepeatedDisjointUnion (H : Finset (Finset V)) : Prop := …
- theorem
Finset.isUniform_emptyline 151 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Finset.IsUniform,EmptyCollection.emptyCollection,FinsetProof uses:
of_eq_true,Membership.mem,Eq,Finset.card,Eq.trans,True,forall_congr,False,implies_congr,Eq.refl,implies_true7 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- theorem
Finset.containsSubgraph_iffThe cardinal bound inContainsSubgraphcounts edges, not copies with labels line 155 sourceSource documentation
The cardinal bound in
ContainsSubgraphcounts edges, not copies with labels.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,Finset,Nat,Iff, Finset.ContainsSubgraph,Exists,And,Eq,Finset.card,LE.le, Finset.hypergraphInduceProof uses:
Iff.rfl1 instances, coercions and auxiliary constants left out.
theorem containsSubgraph_iff (H : Finset (Finset V)) (m k : ℕ) : H.ContainsSubgraph m k ↔ ∃ S : Finset V, S.card = m ∧ k ≤ (H.hypergraphInduce S).card := Iff.rfl … - theorem
Finset.not_colorable_singletonA singleton edge prevents any weak proper coloring line 161 sourceSource documentation
A singleton edge prevents any weak proper coloring.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Not, Finset.HypergraphColorable,Singleton.singleton,FinsetProof uses:
Fin, Finset.IsProperHypergraphColoring,False,False.elim,Eq.mp,Eq.trans,Membership.mem,Exists,And,Eq,forall_congr,implies_congr,Eq.refl,congrArg,funext,congr,congrFun',True,eq_self,not_true_eq_false8 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
theorem not_colorable_singleton (v : V) (k : ℕ) : ¬ ({ {v} } : Finset (Finset V)).HypergraphColorable k := by …Mentions: Finset.HypergraphColorable
- def
Finset.hypergraphIndependenceNumberThe largest cardinality of an independent vertex set in a finite ground type line 168 sourceSource documentation
The largest cardinality of an independent vertex set in a finite ground type.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,Finset,NatProof uses:
Finset.sup,Finset.filter, Finset.IsHypergraphIndependent,Classical.propDecidable,Finset.powerset,Finset.univ,Finset.card3 instances, coercions and auxiliary constants left out.
noncomputable def hypergraphIndependenceNumber [Fintype V] (H : Finset (Finset V)) : ℕ := …
- def
Finset.propertyBWitnessesSubsets of the incident vertices witnessing Property B line 173 sourceSource documentation
Subsets of the incident vertices witnessing Property B.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,FinsetProof uses:
Finset.filter,And,Membership.mem,Finset.Nonempty,Inter.inter, Finset.IsHypergraphIndependent,Classical.propDecidable,Finset.powerset,Finset.biUnion,id6 instances, coercions and auxiliary constants left out.
noncomputable def propertyBWitnesses (H : Finset (Finset V)) : Finset (Finset V) := …
- def
Hypergraph.extremalNumberMaximum number of edges amongr-uniform families satisfyingPonnlabeled vertices line 184 sourceSource documentation
Maximum number of edges among
r-uniform families satisfyingPonnlabeled vertices. The value is zero if no family is admissible.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,FinProof uses:
Finset.sup,Finset.filter,Classical.propDecidable,Finset.powerset,Finset.powersetCard,Finset.univ,Finset.card4 instances, coercions and auxiliary constants left out.
noncomputable def extremalNumber (n r : ℕ) (P : Finset (Finset (Fin n)) → Prop) : ℕ := …
- def
Hypergraph.cliqueExtremalNumberThe extremal number forbidding a complete uniform hypergraph line 188 sourceSource documentation
The extremal number forbidding a complete uniform hypergraph.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NatProof uses: Hypergraph.extremalNumber,
Finset,Fin,Not, Finset.ContainsCompleteHypergraphnoncomputable def cliqueExtremalNumber (n r k : ℕ) : ℕ := …
- def
Hypergraph.configurationExtremalNumberThe extremal number forbiddingeedges onvvertices (not necessarily induced) line 192 sourceSource documentation
The extremal number forbidding
eedges onvvertices (not necessarily induced).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NatProof uses: Hypergraph.extremalNumber,
Finset,Fin,Not, Finset.ContainsSubgraph1 instances, coercions and auxiliary constants left out.
noncomputable def configurationExtremalNumber (n r v e : ℕ) : ℕ := …
- def
Hypergraph.partiteExtremalNumberThe extremal number forbidding a complete balanced multipartite uniform hypergraph line 196 sourceSource documentation
The extremal number forbidding a complete balanced multipartite uniform hypergraph.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NatProof uses: Hypergraph.extremalNumber,
Finset,Fin,Not, Finset.ContainsCompletePartiteHypergraph1 instances, coercions and auxiliary constants left out.
noncomputable def partiteExtremalNumber (n t r : ℕ) : ℕ := …
- def
Hypergraph.minChromaticEdgesMinimum edge count for chromatic numberk, with infinity when no such graph exists line 200 sourceSource documentation
Minimum edge count for chromatic number
k, with infinity when no such graph exists.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,ENatProof uses:
iInf,Finset,Fin, Finset.IsUniform, Finset.HasHypergraphChromaticNumber,Finset.card9 instances, coercions and auxiliary constants left out.
noncomputable def minChromaticEdges (r k : ℕ) : ℕ∞ := …
- def
Hypergraph.blockSizeProfilesAll block-size sequences of pairwise balanced designs onnlabeled vertices line 206 sourceSource documentation
All block-size sequences of pairwise balanced designs on
nlabeled vertices.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,ListProof uses:
Finset.image,Fin, Finset.blockSizeProfile,Finset.filter, Finset.IsPairwiseBalancedDesign,Classical.propDecidable,Finset.powerset,Finset.univ3 instances, coercions and auxiliary constants left out.
noncomputable def blockSizeProfiles (n : ℕ) : Finset (List ℕ) := …