Documentation

BGW.StableTrees.MarchalChainGraft

Grafting a leaf on a finite tree #

The graph operation either adds a leaf at an existing branch vertex or subdivides an edge and attaches the new leaf to the subdivision vertex.

noncomputable def BGW.StableTrees.Marchal.graftGraph {m : ℕ} (G : SimpleGraph (Fin m)) (p : ↑G.edgeSet ⊕ { v : Fin m // 3 ≤ G.degree v }) :
SimpleGraph (Fin (match p with | Sum.inl val => m + 2 | Sum.inr val => m + 1))

Graft a new leaf A_{n+1} (the last vertex) on the middle of an edge (new midpoint m, new leaf m+1) or on an internal vertex (new leaf m).

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    The new leaf in a vertex graft.

    Equations
    Instances For
      def BGW.StableTrees.Marchal.vertexOld {m : ℕ} (x : Fin m) :
      Fin (m + 1)

      Old vertices in a vertex graft.

      Equations
      Instances For
        @[simp]
        theorem BGW.StableTrees.Marchal.graftGraph_inr_adj_old_old {m : ℕ} (G : SimpleGraph (Fin m)) (v : { v : Fin m // 3 ≤ G.degree v }) (x y : Fin m) :
        @[simp]
        theorem BGW.StableTrees.Marchal.graftGraph_inr_adj_old_new {m : ℕ} (G : SimpleGraph (Fin m)) (v : { v : Fin m // 3 ≤ G.degree v }) (x : Fin m) :
        @[simp]
        theorem BGW.StableTrees.Marchal.graftGraph_inr_adj_new_old {m : ℕ} (G : SimpleGraph (Fin m)) (v : { v : Fin m // 3 ≤ G.degree v }) (x : Fin m) :
        @[simp]
        theorem BGW.StableTrees.Marchal.graftGraph_inr_degree_old_of_ne {m : ℕ} (G : SimpleGraph (Fin m)) (v : { v : Fin m // 3 ≤ G.degree v }) (x : Fin m) (hx : x ≠ ↑v) :
        @[simp]

        The subdivision midpoint in an edge graft.

        Equations
        Instances For

          The new leaf in an edge graft.

          Equations
          Instances For
            def BGW.StableTrees.Marchal.edgeOld {m : ℕ} (x : Fin m) :
            Fin (m + 2)

            Old vertices in an edge graft.

            Equations
            Instances For
              @[simp]
              theorem BGW.StableTrees.Marchal.graftGraph_inl_adj_old_old {m : ℕ} (G : SimpleGraph (Fin m)) (e : ↑G.edgeSet) (x y : Fin m) :
              (graftGraph G (Sum.inl e)).Adj (edgeOld x) (edgeOld y) ↔ G.Adj x y ∧ s(x, y) ≠ ↑e
              @[simp]
              @[simp]

              An edge graft subdivides one edge and adds a leaf, hence remains a tree.

              theorem BGW.StableTrees.Marchal.graftGraph_inr_isTree {m : ℕ} (G : SimpleGraph (Fin m)) (v : { v : Fin m // 3 ≤ G.degree v }) (hG : G.IsTree) :

              A vertex graft adds exactly one edge and preserves connectivity.

              def BGW.StableTrees.Marchal.extendLast {n M : ℕ} (f : Fin (n + 1) ↪ Fin M) (z : Fin M) (hz : z ∉ Set.range ⇑f) :
              Fin (n + 2) ↪ Fin M

              Extend a label embedding by a new final label outside its range.

              Equations
              Instances For
                @[simp]
                theorem BGW.StableTrees.Marchal.extendLast_apply_last {n M : ℕ} (f : Fin (n + 1) ↪ Fin M) (z : Fin M) (hz : z ∉ Set.range ⇑f) :
                (extendLast f z hz) (Fin.last (n + 1)) = z
                @[simp]
                theorem BGW.StableTrees.Marchal.extendLast_apply_old {n M : ℕ} (f : Fin (n + 1) ↪ Fin M) (z : Fin M) (hz : z ∉ Set.range ⇑f) (i : Fin (n + 1)) :
                (extendLast f z hz) i.castSucc = f i
                theorem BGW.StableTrees.Marchal.range_extendLast {n M : ℕ} (f : Fin (n + 1) ↪ Fin M) (z : Fin M) (hz : z ∉ Set.range ⇑f) (y : Fin M) :
                y ∈ Set.range ⇑(extendLast f z hz) ↔ y = z ∨ y ∈ Set.range ⇑f

                The range after extending labels is the new label together with the old range.

                noncomputable def BGW.StableTrees.Marchal.graft {n : ℕ} (T : LTree n) (p : Position T.G) :
                LTree (n + 1)

                The tree obtained by grafting A_{n+1} at a position of T.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For