Documentation

Atlas.CombinatorialOptimization.code.Matching.BlossomShrinking

def SimpleGraph.blossomContractMap {V : Type u_1} [DecidableEq V] (B : Finset V) (base : V) :
VV
Instances For
    @[simp]
    theorem SimpleGraph.blossomContractMap_mem {V : Type u_1} [DecidableEq V] (B : Finset V) (base v : V) (hv : v B) :
    blossomContractMap B base v = base
    @[simp]
    theorem SimpleGraph.blossomContractMap_not_mem {V : Type u_1} [DecidableEq V] (B : Finset V) (base v : V) (hv : vB) :
    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) :
      Instances For
        def SimpleGraph.inducedMatchingSubgraph {V : Type u_1} [DecidableEq V] {G : SimpleGraph V} (M : G.Subgraph) (B : Finset V) (base : V) :
        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) :
          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) :
          v Bv M.verts
          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) :
          SG.edgeSet, (∀ eS, we, w B w v) S.ncard = (B.card - 1) / 2 e₁S, e₂S, e₁ e₂Disjoint e₁ e₂
          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) :
          ∃ (N : G.Subgraph), N.IsMatching N'.edgeSet.ncard + (B.card - 1) / 2 N.edgeSet.ncard
          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 : wp.support, wB) (e : Sym2 V) :
          e p.edgese (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 : aB) (hb : bB) (hadj_G : G.Adj a b) :
          (inducedMatchingSubgraph M B base).Adj a b M.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 : wp.support, wB) {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 : wM.verts) (hwB : wB) :
          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) :
          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) :