FormalConjecturesForMathlib/Combinatorics/SimpleGraph/Matching.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
6 declarations, 0 contain sorry, 0 declared as axioms
Imported by 2 files
- def
SimpleGraph.matchingNumbermatchingNumber Gis the size of a maximum matching ofGline 30 sourceSource documentation
matchingNumber Gis the size of a maximum matching ofG.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,SimpleGraph,DecidableRel,SimpleGraph.Adj,RealProof uses:
Set,SimpleGraph.Subgraph,Set.ofPred,SimpleGraph.Subgraph.IsMatching,SupSet.sSup,Set.image,Finset.card,Sym2,Set.toFinset,SimpleGraph.Subgraph.edgeSet,Membership.mem,Classical.propDecidable6 instances, coercions and auxiliary constants left out.
noncomputable def matchingNumber (G : SimpleGraph α) [DecidableRel G.Adj] : ℝ := …
- def
SimpleGraph.IsEdgeMatchingA finite set of edgesMis a matching ofGif every element ofMis an edge ofGand any two edges ofMare equal or share no vertex (no vertex is covered twice) line 37 sourceSource documentation
A finite set of edges
Mis a matching ofGif every element ofMis an edge ofGand any two edges ofMare equal or share no vertex (no vertex is covered twice).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
SimpleGraph,Finset,Sym2Proof uses:
And,Membership.mem,Set,SimpleGraph.edgeSet,Or,Eq,Not4 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
def IsEdgeMatching (G : SimpleGraph α) (M : Finset (Sym2 α)) : Prop := …
- instance
SimpleGraph.(instance at line 41)line 41 source - def
SimpleGraph.IsMaximalEdgeMatchingA matchingMofGis maximal if no further edge ofGcan be added toMwhile keeping the matching property line 47 sourceSource documentation
A matching
MofGis maximal if no further edge ofGcan be added toMwhile keeping the matching property.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,SimpleGraph,Finset,Sym2Proof uses:
And, SimpleGraph.IsEdgeMatching,Membership.mem,Set,SimpleGraph.edgeSet,Not,Insert.insert5 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
def IsMaximalEdgeMatching (G : SimpleGraph α) (M : Finset (Sym2 α)) : Prop := …
- instance
SimpleGraph.(instance at line 51)line 51 source - theorem
SimpleGraph.matching_card_boundDocumented declaration: matching_card_bound line 57 sourceSource documentation
In a finite graph, twice the number of edges of any matching is at most the number of vertices: each edge contributes two distinct vertices, and a matching's edges are vertex-disjoint.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,DecidableEq,SimpleGraph,SimpleGraph.Subgraph,Sym2,SimpleGraph.Subgraph.edgeSet,SimpleGraph.Subgraph.IsMatching,LE.le,Nat,HMul.hMul,OfNat.ofNat,Finset.card,Set.toFinset,Fintype.cardProof uses:
Membership.mem,Finset,Ne,Disjoint,Sym2.toFinset,Eq.mpr,Not,id,Eq,congrArg,propext,Finset.disjoint_left,Sym2.mk,Exists,False,Iff.mp,Sym2.mem_iff_exists,Eq.mp,Sym2.mem_toFinset,Setand 23 more27 instances, coercions and auxiliary constants left out.
Tactic trace: 20 steps
Open to load the checked before-and-after goal states.
theorem matching_card_bound (G : SimpleGraph α) (M : Subgraph G) [Fintype ↥M.edgeSet] (h : M.IsMatching) : 2 * M.edgeSet.toFinset.card ≤ Fintype.card α := by …