Instances For
@[simp]
theorem
SimpleGraph.blossomContractMap_mem
{V : Type u_1}
[DecidableEq V]
(B : Finset V)
(base v : V)
(hv : v ∈ B)
:
@[simp]
theorem
SimpleGraph.blossomContractMap_not_mem
{V : Type u_1}
[DecidableEq V]
(B : Finset V)
(base v : V)
(hv : v ∉ B)
:
def
SimpleGraph.contractBlossom
{V : Type u_1}
[DecidableEq V]
(G : SimpleGraph V)
(B : Finset V)
(base : V)
:
Instances For
structure
SimpleGraph.IsBlossom
{V : Type u_1}
[DecidableEq V]
(G : SimpleGraph V)
(M : G.Subgraph)
(B : Finset V)
(base : V)
:
- stem : ∃ w ∉ B, M.Adj base w
Instances For
def
SimpleGraph.inducedMatchingSubgraph
{V : Type u_1}
[DecidableEq V]
{G : SimpleGraph V}
(M : G.Subgraph)
(B : Finset V)
(base : V)
:
(G.contractBlossom B base).Subgraph
Instances For
theorem
SimpleGraph.inducedMatchingSubgraph_isMatching
{V : Type u_1}
[DecidableEq V]
[Fintype V]
{G : SimpleGraph V}
[DecidableRel G.Adj]
(M : G.Subgraph)
(hM : M.IsMatching)
(B : Finset V)
(base : V)
(hB : G.IsBlossom M B base)
:
(inducedMatchingSubgraph M B base).IsMatching
theorem
SimpleGraph.blossom_verts_in_M_verts
{V : Type u_1}
[DecidableEq V]
{G : SimpleGraph V}
(M : G.Subgraph)
(B : Finset V)
(base : V)
(hB : G.IsBlossom M B base)
(v : V)
:
theorem
SimpleGraph.odd_cycle_matching_avoiding_any_vertex
{V : Type u_2}
[DecidableEq V]
[Fintype V]
(G : SimpleGraph V)
(B : Finset V)
(base : V)
(hbase : base ∈ B)
(hB_odd : Odd B.card)
(hB_ge : 3 ≤ B.card)
(c : G.Walk base base)
(hc : c.IsCycle)
(hsupp : c.support.toFinset = B)
(v : V)
(hv : v ∈ B)
:
theorem
SimpleGraph.lift_matching_size
{V : Type u_1}
[DecidableEq V]
[Fintype V]
{G : SimpleGraph V}
[DecidableRel G.Adj]
(M : G.Subgraph)
(hM : M.IsMatching)
(B : Finset V)
(base : V)
(hB : G.IsBlossom M B base)
(N' : (G.contractBlossom B base).Subgraph)
(hN' : N'.IsMatching)
:
theorem
SimpleGraph.induced_matching_edgeSet_ncard
{V : Type u_1}
[DecidableEq V]
[Fintype V]
{G : SimpleGraph V}
[DecidableRel G.Adj]
(M : G.Subgraph)
(hM : M.IsMatching)
(B : Finset V)
(base : V)
(hB : G.IsBlossom M B base)
:
theorem
SimpleGraph.augmenting_path_lift
{V : Type u_1}
[DecidableEq V]
[Fintype V]
{G : SimpleGraph V}
[DecidableRel G.Adj]
(M : G.Subgraph)
(hM : M.IsMatching)
(B : Finset V)
(base : V)
(hB : G.IsBlossom M B base)
(haug' : (G.contractBlossom B base).HasAugmentingPath (inducedMatchingSubgraph M B base))
:
theorem
SimpleGraph.walk_edges_in_contractBlossom
{V : Type u_1}
[DecidableEq V]
[Fintype V]
{G : SimpleGraph V}
[DecidableRel G.Adj]
(B : Finset V)
(base : V)
{u v : V}
(p : G.Walk u v)
(hdisjoint : ∀ w ∈ p.support, w ∉ B)
(e : Sym2 V)
:
e ∈ p.edges → e ∈ (G.contractBlossom B base).edgeSet
theorem
SimpleGraph.inducedMatching_adj_iff_of_not_mem
{V : Type u_1}
[DecidableEq V]
[Fintype V]
{G : SimpleGraph V}
[DecidableRel G.Adj]
(M : G.Subgraph)
(B : Finset V)
(base : V)
(hbase : base ∈ B)
{a b : V}
(ha : a ∉ B)
(hb : b ∉ B)
(hadj_G : G.Adj a b)
:
theorem
SimpleGraph.inducedMatching_edgeSet_iff_of_support_disjoint
{V : Type u_1}
[DecidableEq V]
[Fintype V]
{G : SimpleGraph V}
[DecidableRel G.Adj]
(M : G.Subgraph)
(B : Finset V)
(base : V)
(hbase : base ∈ B)
{u v : V}
(p : G.Walk u v)
(hdisjoint : ∀ w ∈ p.support, w ∉ B)
{e : Sym2 V}
(he : e ∈ p.edges)
:
theorem
SimpleGraph.unmatched_not_in_induced_verts
{V : Type u_1}
[DecidableEq V]
[Fintype V]
{G : SimpleGraph V}
[DecidableRel G.Adj]
(M : G.Subgraph)
(B : Finset V)
(base : V)
(hbase : base ∈ B)
(hM : M.IsMatching)
(hB : G.IsBlossom M B base)
{w : V}
(hw : w ∉ M.verts)
(hwB : w ∉ B)
:
w ∉ (inducedMatchingSubgraph M B base).verts
theorem
SimpleGraph.augmenting_path_project
{V : Type u_1}
[DecidableEq V]
[Fintype V]
{G : SimpleGraph V}
[DecidableRel G.Adj]
(M : G.Subgraph)
(hM : M.IsMatching)
(B : Finset V)
(base : V)
(hB : G.IsBlossom M B base)
(haug : G.HasAugmentingPath M)
:
(G.contractBlossom B base).HasAugmentingPath (inducedMatchingSubgraph M B base)
theorem
SimpleGraph.blossom_shrinking
{V : Type u_1}
[DecidableEq V]
[Fintype V]
{G : SimpleGraph V}
[DecidableRel G.Adj]
(M : G.Subgraph)
(hM : M.IsMatching)
(B : Finset V)
(base : V)
(hB : G.IsBlossom M B base)
: