Documentation

Anderson4D.HeppTree.LinkParent

Parent-function encoding of a connected child-link graph #

Paper §5.3, Step 5 chooses a link tree on the children of a branching vertex and exposes the children from a fixed root. This file makes that choice canonical enough for counting:

IsLink itself can hold on the diagonal, so adjacency explicitly includes a ≠ b.

@[reducible, inline]

The finite type of children of a fixed tree vertex.

Equations
Instances For

    Undirected simple graph of links among the children of v.

    Equations
    Instances For
      @[simp]
      theorem Anderson4D.childLinkGraph_adj {t : PlaneTree} {Nm : t.HeppMarking} {z : LeafEmbedding t} {v : t.VPos} {a b : BranchChild v} :
      (childLinkGraph Nm z v).Adj a b ↔ a ≠ b ∧ IsLink Nm z v ↑a ↑b

      A branch vertex has at least one child, packaged as nonemptiness of the child subtype.

      theorem Anderson4D.childLinkGraph_connected {t : PlaneTree} {Nm : t.HeppMarking} {z : LeafEmbedding t} {v : t.VPos} (hv : v ∈ t.BranchNodes) (hlinked : LinkedChildren Nm z v) :

      LinkedChildren is precisely enough to make the undirected child-link graph connected. Self-steps in its reflexive-transitive chain are discarded when converting to walks of the irreflexive graph.

      Shortest-path parent map #

      noncomputable def Anderson4D.linkParent {t : PlaneTree} {Nm : t.HeppMarking} {z : LeafEmbedding t} {v : t.VPos} (hv : v ∈ t.BranchNodes) (hlinked : LinkedChildren Nm z v) (root : BranchChild v) :

      Orient a chosen shortest-path edge from every child toward the fixed root child. The root points to itself.

      Equations
      Instances For
        @[simp]
        theorem Anderson4D.linkParent_root {t : PlaneTree} {Nm : t.HeppMarking} {z : LeafEmbedding t} {v : t.VPos} (hv : v ∈ t.BranchNodes) (hlinked : LinkedChildren Nm z v) (root : BranchChild v) :
        linkParent hv hlinked root root = root
        theorem Anderson4D.childLinkGraph_adj_linkParent {t : PlaneTree} {Nm : t.HeppMarking} {z : LeafEmbedding t} {v : t.VPos} (hv : v ∈ t.BranchNodes) (hlinked : LinkedChildren Nm z v) (root : BranchChild v) {c : BranchChild v} (hc : c ≠ root) :
        (childLinkGraph Nm z v).Adj c (linkParent hv hlinked root c)

        Every non-root child is adjacent to its chosen parent.

        theorem Anderson4D.linkParent_ne_self {t : PlaneTree} {Nm : t.HeppMarking} {z : LeafEmbedding t} {v : t.VPos} (hv : v ∈ t.BranchNodes) (hlinked : LinkedChildren Nm z v) (root : BranchChild v) {c : BranchChild v} (hc : c ≠ root) :
        linkParent hv hlinked root c ≠ c

        A non-root child never points to itself.

        theorem Anderson4D.linkParent_dist_lt {t : PlaneTree} {Nm : t.HeppMarking} {z : LeafEmbedding t} {v : t.VPos} (hv : v ∈ t.BranchNodes) (hlinked : LinkedChildren Nm z v) (root : BranchChild v) {c : BranchChild v} (hc : c ≠ root) :
        (childLinkGraph Nm z v).dist (linkParent hv hlinked root c) root < (childLinkGraph Nm z v).dist c root

        Following a selected parent strictly lowers graph distance to the fixed root.

        Enumeration in increasing graph distance #

        noncomputable def Anderson4D.childrenByLinkDistance {t : PlaneTree} (Nm : t.HeppMarking) (z : LeafEmbedding t) (v : t.VPos) (root : BranchChild v) :

        All children, stably sorted by nondecreasing link-graph distance to the fixed root. Ties are harmless: the parent distance is strictly smaller.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem Anderson4D.mem_childrenByLinkDistance {t : PlaneTree} (Nm : t.HeppMarking) (z : LeafEmbedding t) (v : t.VPos) (root c : BranchChild v) :
          theorem Anderson4D.childrenByLinkDistance_pairwise {t : PlaneTree} (Nm : t.HeppMarking) (z : LeafEmbedding t) (v : t.VPos) (root : BranchChild v) :
          List.Pairwise (fun (a b : BranchChild v) => (childLinkGraph Nm z v).dist a root ≤ (childLinkGraph Nm z v).dist b root) (childrenByLinkDistance Nm z v root)

          The distance enumeration is pairwise nondecreasing.

          theorem Anderson4D.idxOf_linkParent_lt {t : PlaneTree} {Nm : t.HeppMarking} {z : LeafEmbedding t} {v : t.VPos} (hv : v ∈ t.BranchNodes) (hlinked : LinkedChildren Nm z v) (root : BranchChild v) {c : BranchChild v} (hc : c ≠ root) :
          List.idxOf (linkParent hv hlinked root c) (childrenByLinkDistance Nm z v root) < List.idxOf c (childrenByLinkDistance Nm z v root)

          In the distance-sorted enumeration, every non-root child's parent occurs strictly earlier.

          Interface to the full parent-function space #

          noncomputable def Anderson4D.linkParentFullFunction {t : PlaneTree} {Nm : t.HeppMarking} {z : LeafEmbedding t} {v : t.VPos} (hv : v ∈ t.BranchNodes) (hlinked : LinkedChildren Nm z v) (root : BranchChild v) :

          The selected link parent is already a full parent function, with no quotient or partial-domain conversion.

          Equations
          Instances For
            @[simp]
            theorem Anderson4D.linkParentFullFunction_mem_univ {t : PlaneTree} {Nm : t.HeppMarking} {z : LeafEmbedding t} {v : t.VPos} (hv : v ∈ t.BranchNodes) (hlinked : LinkedChildren Nm z v) (root : BranchChild v) :

            Size of the enlarged, directly countable full-function space.

            theorem Anderson4D.fullParentWeight_linkParent {t : PlaneTree} {Nm : t.HeppMarking} {z : LeafEmbedding t} {v : t.VPos} (hv : v ∈ t.BranchNodes) (hlinked : LinkedChildren Nm z v) (root : BranchChild v) {R : Type u_1} [CommSemiring R] (parentWeight childWeight : BranchChild v → R) :
            fullParentWeight root parentWeight childWeight (linkParentFullFunction hv hlinked root) = ∏ c : BranchChild v, if c = root then 1 else parentWeight (linkParent hv hlinked root c) * childWeight c

            fullParentWeight of the selected map has exactly the expected root-normalized edge-factor product.

            theorem Anderson4D.fullParentWeight_linkParent_le_all_nat {t : PlaneTree} {Nm : t.HeppMarking} {z : LeafEmbedding t} {v : t.VPos} (hv : v ∈ t.BranchNodes) (hlinked : LinkedChildren Nm z v) (root : BranchChild v) (parentWeight childWeight : BranchChild v → ℕ) :
            fullParentWeight root parentWeight childWeight (linkParentFullFunction hv hlinked root) ≤ ∏ c : BranchChild v, if c = root then 1 else (∑ u : BranchChild v, parentWeight u) * childWeight c

            Natural weights of the selected parent map are bounded by the factorized sum over the full function space. This is the direct handoff to sum_fullParentWeight.