Triconed Graphs, weighted forests, and h-vectors of matroid complexes

A well-known conjecture of Stanley is that the h-vector of a matroid is a pure O-sequence. There have been numerous papers with partial progress on this conjecture, but it is still wide open. In particular, for graphic matroids coming from taking the spanning trees of a graph as bases, the conjecture is mostly unsolved. In graph theory, a set of vertices is called dominating if every other vertex is adjacent to some vertex inside the chosen set. Kook proved Stanley's conjecture for coned graphs, which is the class of graphs that are dominated by a single vertex. Cranford et al extended that result to biconed graphs, which is the class of graphs dominated by a single edge. In this paper we extend that result to triconed graphs, the class of graphs dominated by a path of length 2.


INTRODUCTION
Given a graph G, its graphic matroid can be thought of as the collection of spanning trees of G. A matroid is a structure which generalizes the notion of independence that rises in linear algebra, graph theory and other areas. Given a matroid, we can naturally construct a simplicial complex and study its so called h-vector which provides the topological information of the complex. The following conjecture by Stanley has motivated numerous research on h-vectors of a matroid:

Conjecture 1.1 ([15]). The h-vector of a matroid is a pure O-sequence.
Here an O-sequence is a sequence that can be obtained from counting monomials of each degree in an order ideal: a finite collection X of monomials such that, whenever M ∈ X and N divides M, we have N ∈ X as well. If all maximal monomials of X have the same degree, we say it is pure and the degree sequence coming from it a pure O-sequence. The above conjecture has been open for over four decades, and there are some specific classes of matroids for which the above conjecture has been established to be true. In particular, these include cographic matroids by Merino in [11], lattice-path matroids by Schweig in [14], cotransversal matroids by Oh in [13], paving matroids by Merino, Noble, Ramirez-Ibanez, and Villarroel-Flores [12], internally perfect matroids by Dall in [4], rank 3 matroids by Há, Stokes, and Zanello in [6], rank 3 and corank 2 matroids by DeLoera, Kemper, and Klee in [5], rank 4 matroids by Klee and Samper in [7], and rank d matroids with h d ≤ 5 by Constantinescu, Kahle, and Varbaro in [2].
In this paper the focus will solely be on the class of graphic matroids, for which the conjecture is still wide open. In [9] Kook proved the conjecture for the class of coned graphs, which is the class of graphs dominated by a vertex: there is a conal vertex adjacent to every other vertex. The result was extended in [3] to the class of biconed graphs, which is the class of graphs having a dominating edge: every other vertices of the graph is adjacent to at least one vertex of that edge. In this paper, we will further extend this result to triconed graphs, which is the class of graphs Date: September 6, 2021. being dominated by a path of length two: every other vertices of the graph is adjacent to at least one vertex along this path.
As was the case for the proof of coned graphs in [9] and biconed graphs in [3], the main idea will be to convert spanning trees to forests with certain edges being empowered, which then directly translates to monomials where variables correspond to edges of the graph. In section 2 we recall some basic notion and definitions from matroid and graph theory. In section 3 we describe our main objects in consideration and establish bijections between them: spanning trees of a triconed graph G, trirooted forests of G \ B 0 and 3-(edge)weighted forests of G \ B 0 . In section 4, we show that our construction results in a pure multicomplex and hence proves Stanley's conjecture for graphic matroids coming from triconed graphs. In section 5 we provde a detailed example to demonstrate our method and discuss further directions of research.

PRELIMINARY
Throughout the paper, we will use the following notation. When A is a set and a is a single element, instead of writing A \ {a} we will instead write A \ a. Similarly, instead of writing A ∪ {a} we will instead use A ∪ a.

Graphs and Matroids.
We first review some basic notions and tools of matroid theory. We will assume basic familiarity with matroid theory and recommend [1] for more details. Let us start with a graph G. The edge set E is called the ground set of the matroid M G we are about to construct from G. Take the collection of subsets of E that corresponds to spanning trees of G: such sets are called the bases of the graphic matroid of M G and will be denoted by B(G) or just simply B. All spanning trees have the same number of edges in them and that cardinality r is called the rank of the matroid.
The bases of a matroid satisfy the following exchange property: for any pair of bases A, B ∈ B, for all a ∈ A \ B there exists some b ∈ B \ A such that A \ a ∪ b ∈ B.
An element of the ground set E that is not contained in any base of M is called a loop. An element of the ground set E that is contained in every base of M is called a coloop. Two elements a, b of the ground set E, such that we have the property that I ∪ a ∈ B iff I ∪ b ∈ B for all subsets I ⊂ E, are called parallel.

Activity and the h-vector.
From any ordering on the ground set E, we get an induced lexicographic ordering on the bases. An element i of a base B is (internally) active if B \ i ∪ j is not a base for any j < i. Otherwise, it is called (internally) passive. There is also the notion of externally active and externally passive elements, but in this paper we will only stick to interally active and passive elements, and hence will skip the usage of the word internally throughout. Given a base B of a matroid, we call its passivity as the number of (internally) passive elements it contains.
We will use this activity property of h-vectors as the definition of h-vectors of matroids in this paper. They form the set of bases of the graphic matroid coming from G. Take a look at 125. Here the edge 5 is passive, since we can replace it with a smaller edge (say 3) to get another spanning tree. Note that 5 was colored red: in this figure, for each spanning tree, the passive edges are colored red. Hence the h-vector of the graphic matroid will be (1, 2, 3, 2).

Order ideal and pure O-sequences.
An order ideal is a finite collection X of monomials such that, whenever M ∈ X and N divides M, we have N ∈ X as well. Given an order ideal its Osequence is a sequence that can be obtained from counting monomials of each degree. We say that the order ideal is pure if all the maximal monomials are of the same degree, and also call the O-sequence pure if it comes from a pure order ideal.
For example, take a look at Figure 2. If we take any monomial among this collection, say xy 2 , we can see that all divisors of it is again present in the collection. Hence this is an order ideal. Moreover, since the maximal monomials under division (which are usually not guaranteed to all have the same degree) here are x 3 and xy 2 , which have the same degree, this is a pure order ideal. Now notice that the degree sequence of this pure order ideal is (1, 2, 3, 2). Hence we can see that the h-vector of the graphic matroid back in Figure 1, which was (1, 2, 3, 2), is indeed a pure O-sequence. Hence we have just verified that Stanley's conjecture is true for the graph in Figure 1. What we want to do in this paper is to similarly construct a pure order ideal for the class of triconed graphs, hence proving the conjecture for this class.

TRICONED GRAPHS AND ROOTED FORESTS
In this section we will go over the core definitions and ideas needed for this paper on triconed graphs. The rough sketch of the strategy we use for attacking Stanley's conjecture for graphs is the following: we will show an algorithm for converting spanning trees into monomials, that will turn out to form a pure order ideal. The variables we use will come from edges of the graph G that are not contained in a certain canonical spanning tree B 0 which will be defined in the subsection below. So given a spanning tree B, we convert the information of edges in B 0 ∩ B to marks on certain vertices, then convert the information stored on the marks of vertices into empowerment of edges which corresponds to increasing the power of the corresponding variable.
3.1. Triconed graphs. We shall define triconed graphs as the following: Alternatively, we may say that a triconed graph is a graph which is dominated by a path of length 2, and which has no parallel edges touching this path.
We call the vertices 0, 1, 2 to be special and other remaining vertices to be normal. [8] and biconed graphs from [3] are special cases of triconed graphs as long as they contain a pair of adjacent edges. Also the restriction of possible parallel edges is in line with that from [3]: a graph is a biconed graph if it is dominated by an edge and no parallel edges touch this edge.

Remark 3.2. Coned graphs from
The goal of our paper is to prove Stanley's conjecture for triconed graphs just defined. We start by showing that loops and coloops can be ignored: Proof. The statement regarding the loops is obvious. If we have an edge ab as a coloop inside the graph, we cannot have both 0a, 0b inside the graph. Since otherwise, we can come up with a spanning tree containing 0a and 0b but not ab using Kruskal's algorithm [10]. The same occurs for pairs 1a, 1b and 2a, 2b. Hence after contracting by the edge ab, we avoid creating new parallel edges having a special vertex as an endpoint.
From the above lemma we can conclude the following: Remark 3.4. Given a triconed graph, deleting a loop or contracting by a coloop does not change the hvector of the matroid. Hence for sake of proving Stanley's conjecture on the class of triconed graphs, we may assume that our graph does not have any loops or coloops thanks to Lemma 3.3. Hence from now on, throughout the entire paper, we are only going to deal with triconed graphs with no loops nor coloops.
We will put an ordering on the vertices and then the edges. First for the vertices, label 0, 1, 2 as above. Then we label the remaining vertices adjacent to 0 starting from 3. After that, we label the remaining vertices adjacent to 1 then finish off with the remaining vertices adjacent to 2. This gives a total ordering on the vertices of G. For example look at Figure 3. We have vertex 0 that is adjacent to 1, 2 and all other vertices are adjacent to at least one of 0, 1, 2. The remaining vertices adjacent to 0 are labeled 3, 4, the remaining vertices adjacent to 1 are labeled 5, 6, 7 and finally the remaining vertices (which are adjacent to 2) are labeled 8, 9, A (in this paper we will use A when used as a label of a vertex, to denote 10). We will call the vertices adjacent to 0 as vertices of height 1 of the graph and the vertices not adjacent to 0 (also excluding 0 as well) as vertices of height 2 of the graph. Now on to the total ordering on the edges. The smallest edges will be the ones adjacent to 0. Among that collection we order them lexicographically. The next smallest edges will be the ones connecting 1 to vertices of height 2. Within that collection of edges we again order them lexicographically. Then the next set of edges will be the ones connecting 2 to vertices of height 2 that are not adjacent to 1. Again order within lexicographically. Finally comes the set of all the remaining edges, which we can order in any way. For example take a look at Figure 3. Then the ordering on the edges will be as the following (here the letter A stands for 10): Notice that in the above order, we are free to reorder the edges 25, 27, . . . , 9A in any way we want. Using the total ordering on the edges we just went over, we define the canonical spanning tree B 0 of G as the lexicographically smallest spanning tree of G. For example, in Figure 3, the lexicographically smallest spanning tree consists of the edges 01, 02, 03, 04, 15, 16, 17, 28, 29, 2A (the corresponding edges are colored red). Another way to think about this canonical spanning tree is that it is obtained by doing a breadth-first search starting from vertex 0, then 1 and 2. Note that since B 0 is the lexicographically smallest spanning tree of G, it has the property that no edges are passive.
We say that vertex u is a child of vertex v if u is a child of v in the canonical spanning tree B 0 rooted at vertex 0. For an edge vu of B 0 where u is a child of v, we say that the child of the edge vu is u and the cone edge of u is vu. Notice that this gives us a bijection between non-root vertices of B 0 and edges of B 0 : simply map a vertex to its cone edge. For example, take a look at the canonical spanning tree drawn in red inside Figure 3. The cone edge of vertex 5 would be 15, and the cone edge of the vertex 3 would be 03.
We classify a vertex as type 1 if it is vertex 1 or a child of vertex 1, as type 2 if it is vertex 2 or a child of vertex 2, and as type 0 otherwise. We will look mainly at subgraphs resulting from the removal of the spanning tree B 0 . Let G red be the graph obtained from G by removing the edges of B 0 and the vertex 0. For example take a look at the triconed graph G in Figure 3. Removing 0 and edges of B 0 from this graph gives us G red in Figure 4. In G red , vertices 1, 5, 6, 7 are of type 1, vertices 2, 8, 9, A are of type 2 and vertices 3, 4 are of type 0.

Trirooted forests.
Given a spanning tree B of a triconed graph G, we will show that we can express B as a spanning forest on G red by taking the edges in B ∩ G red and then adding extra information called marks on vertices that encode which edges of B 0 were deleted as we go from G to G red . Recall that in G, we called the vertices 0, 1, 2 to be special and other vertices to be normal. We carry this over to G red as well, calling the vertices 1, 2 to be special and others to be normal.
For each edge of B ∩ B 0 excluding 01 and 02, the idea is to put a mark on its child. We will elaborate on the details of this process after we define trirooted forests in Definition 3.6. The type of a mark will be the type of the vertex it is on, as defined in the previous subsection. A doubly marked vertex is a vertex of type 2, that has two marks on it. We think of it as having a usual mark on it of type 2 and an extra mark of type 0 on the same vertex as well. The purpose of having such object is to encode the information regarding the edge 02. The type of a tree will be the collection of types of the marks on it. We draw the marks as hollow circles.
For example, take a look at the forest in Figure 6 that has some marks on it. The hollow circles stand for the marks. Vertex 5 has a mark on it, so the mark here is of type 1. The vertex 8 is a doubly marked vertex, and has a mark of type 2 and a mark of type 0 on it. The type of the component containing vertex 8 will be {0, 1, 2}. Definition 3.5. Given a triconed graph G, look at the reduced graph G red . If T is a tree on G red with some marks that satisfy the following properties, we call it a correctly marked tree of G red : • there is at least one mark, • special vertices, if contained, are marked, • the types of the marks that appear are all different, • if there is a doubly marked vertex, there has to be another marked vertex.
Given a tree, let the degree of the tree count the number of marks on it (hence if it contains a doubly marked vertex, that contributes two to the degree). Given a component of a forest that has degree i, we will simply call it an i-component of the forest.
A blueprint ¶(F) of a trirooted forest F will be a graph on vertices {0, 1, 2} with parallel edges allowed coming from the components of G red . For each 2-component having marks of type a, b we add an edge ab into the blueprint . If there is a 3-component, we put edges 01 and 02 into the blueprint. Beware that unlike G, we are allowing parallel edges in the construction of the blueprint.
For example take a look at the forest with marks on it in Figure 6. Each component is correctly marked. There are no 2-components and the lone 3-component has type {0, 1, 2}. From this we can construct its blueprint in Figure 8: it consists of edges 01 and 02. Definition 3.6. Given a triconed graph G, a trirooted forest (of G red ) is a spanning forest F of G red with some marks on vertices such that the following properties are satisfied: • each component is a correctly marked tree, • its blueprint is acyclic.
We will use R(G red ) to denote the set of trirooted forests of G red . Now we will describe how to transform the spanning trees of G to trirooted forests of G red . Suppose B ∈ T (G) is a spanning tree. Remove all edges of B 0 ∩ B and when we do so, for all edges being deleted except for 01 and 02, mark its child. Mark the vertices 1 and 2 regardless of whether B contains 01 and 02 or not. If B contained 02 and there is a path from 2 to 1 in B not going through 02, then pick the first edge along this path that is not in B 0 , and doubly mark the endpoint of this edge closer to 2. Notice that this vertex we have chosen, should have been marked already in the first step, so we are essentially adding an extra mark coming from 02 to that vertex. Every component must have at least one marking since B is connected and spanning. In addition, note that if two marked vertices within the same component have same type, or if two components' image in the blueprint overlap at 2 or more vertices, this implies a cycle in G. Hence, this gives us a trirooted forest F B . Let φ 1 be the map that maps B ∈ B(G) to F B ∈ R(G red ).
For example, look at the triconed graph in Figure 5. An example of a spanning tree B of G is given in Figure 7. For each edge e of B 0 ∩ B aside from 02, we mark its child: from 15 we mark 5, from 16 we mark 6, from 28 we mark 8, and from 2A we mark A. Now for 02, look for the path from 2 to 1 in B. The first vertex along this path going from 2 to 1 that is not in B 0 , turns out to 8: so we doubly mark it. The blueprint turns out to be Figure 8 where edges 01 and 02 come from the 3-component. As we go from B to φ 1 (B), there is a bijection between the edges of B 0 ∩ B excluding 01 and 02, and the marked vertices in φ 1 (B). For edges 01 and 02, their existence is encoded in the blueprint as we can see in the following lemmas:  Proof. First notice that since 02 is an edge of B, we cannot have 0 and 2 connected inside the blueprint. Hence existence of a path from 1 to 2 that doesn't go through 02 in B is equivalent to the existence of a component of type {1, 2} in φ 1 (B).
For example take a look at the blueprint in Figure 8. From Lemma 3.7 tells us that 01 is not present in the corresponding spanning tree. From Lemma 3.8 tells us that if the corresponding spanning tree contains 02, then there is a path from 1 to 2 that doesn't go through 02. We can verify that these statements are true in Figure 7.
Proposition 3.9. The map φ 1 : T (G) → R(G red ) described above is a bijection.
Proof. All we need to do is describe how to recover the spanning tree from a trirooted forest. Given a trirooted forest F, take all normal marked vertices and add their cone edges accordingly. If there is a doubly-marked vertex, add in the edge 02. Using Lemma 3.7, if 0 and 1 were not connected in the blueprint add in 01 to our construction. If we still do not have a tree, then add in 02.
For example, using the algorithm described in the proof above we can go from Figure 6 back to Figure 7. For the first step, we take all normal marks 5, 6, 8, A and add their cone edges 15, 16, 28, 2A. Now since there is a doubly-marked vertex, we add in the edge 02. Since the blueprint was spanning, we do not need to add the edge 01. At this point we are done reconstructing the tree of Figure 7. Now that we have established that φ 1 is a bijection between spanning trees of G and trirooted forests of G red , we will show that it carries over the information regarding passivity nicely. For example take a look at the tree B in Figure 9. This is a spanning tree of the triconed graph G from Given a mark on a vertex v, recall that it corresponds to a unique edge of B 0 : namely the edge that has the vertex v as its child (the exception is the extra mark on the doubly marked vertex, which corresponds to the edge 02). We say that a mark is a passive mark if the associated edge is passive, and an active mark if the associated edge is active. From the above lemma we get the following corollary: if the blueprint is not spanning, then that means that an active 01 or 02 is present. Conversely, if the blueprint is spanning, then neither an active 01 nor an active 02 are present.

3-weighted-forests.
Recall that our goal is to convert a spanning tree to a monomial while carrying over the information of number of passive edges into the degree. Hence we want to convert the information of marks (which were placed on vertices) onto weights on the edges of the graph, which is what we will do in this subsection.
We will use the same notation as [8] and [3]: let G be a triconed graph and suppose F is any set of edges of G red . Let ω F : F → N ≥1 denote a positive integer weighting on these set of edges. We will use ω if the context is clear and refer to the pair (F, ω) as a weighted collection of edges. We say e ∈ F has weight n if ω F (e) = n.  Figure 13 would be x 2 36 x 38 x 78 x 3 47 x 9A . Hence we will go between a weighted forest and its corresponding monomial freely: for example, whenever we say that a weighted forest of G red divides another weighted forest of G red , we mean division between the corresponding monomials.

Remark 3.12. Notice that a weighted collection of edges naturally gives us a monomial. We can think of the edges of G red as variables and the weights on the edges as the powers of the variables. For example the monomial associated to the weighted forest in
Given a weighted collection of edges (F, ω F ), let us define a weighted component (or just component if it is clear from the context) as a connected component S ⊂ F, along with its weighting ω S which is simply equal to ω F restricted to S. Then, we calculate the excess weight of a weighted component S as where δ a∈S equals 1 if a ∈ S and equals 0 otherwise. We call a component S to be k-xweighted if its excess weight is k (note that the excess weight of a component is always nonnegative).
For example, let us look at the 3-weighted forest in figure 13. The excess weight of the component containing vertices 3, 4, 6, 7, and 8 is 3, and hence is 2-xweighted. The excess weight of the component containing the vertex 1, and the component containing the vertex 2, is 1. All other components have excess weight 0. Remark 3.13. Excess weight will turn out to be same as the degree of a trirooted component. Weight will turn out to be same as the degree of the monomial coming from that component.
The main idea is to convert a component of a trirooted forest to a component of a 3-weighted forest, while keeping the edge set. Hence given a component, the information stored on the marks of the vertices of that component will be stored on the weights of the edges of that component. We start by defining the analogue of the correctly marked trees: Definition 3.14. Let (T , w) be a weighted tree of G red . We say that it is a correctly weighted tree if it satisfies the following properties: If an edge has weight at least 3, we consider the edge to contain distinct weighted objects based on the same edge.

(C3) The maximum weight of an edge is the sum of the heights of its endpoints. If we have an edge that has its weight equal to that maximal value, we call it a maximal edge. (C4) If there is a maximal edge, all other edges are at most 2-weighted.
We start out by describing a map φ 2 that sends a correctly marked tree of G red to a correctly weighted tree of G red . By default we set the weight of all edges as 1. Now each mark will potentially empower an associated edge: meaning that it will contribute an extra weight to that edge. Moreover we want each passive mark to empower an edge, and active marks do not. So the number of passive marks we started out with will equal the total number of empowerments done.
First in the case we are looking at a degree 1-component in a trirooted forest, let v be the marked vertex and w be the smallest vertex of the component. If v = w, that marked vertex is not passive, hence this mark will not empower any edge and we keep all the weights of the component to be 1. Otherwise, we look at the unique path within the component between between v and w, take the edge closest to v within that path and empower that edge with the mark at v, setting its weight to 2.
If we have a degree 2-component in a trirooted forest, let v and w be the marked vertices. Since doubly marked vertices can only occur in degree 3-components, we may safely assume that v = w. Similar to above, we look at the unique path between v and w within the component and associate the mark of v to the edge of the path closest to v. Similarly we associate the mark of w to the edge of that path closest to w. Now if v is normal then we empower the associated edge, then do the same for w. Notice that regardless of whether v is special or not, the path between the weighted objects that forms from this process stays the same as the path between the marked vertices.
The remaining case is when we are looking at a 3-component in a trirooted forest. We first go over the case when we do not have a doubly marked vertex: let v, w, z be the marked vertices that are all different. If the unique minimal tree that contains v, w, z in the component has all v, w, z as its leaf, we do the same procedure as above: for v (respectively for w and then z) associate the edge within the tree adjacent to v (respectively for w, z), then empower the edge if v is normal (respectively for w, z). If not, then change the labels so that z lies among the unique path P between v and w within the component, and that type(v) < type(w) (the case when we have z = w, that is when we have a doubly marked vertex at w also falls into this case). From now we will describe this special case as the mark at z being sandwiched by the marks at v and w. We pick the associated edges of v and w as before: pick the edge adjacent to the vertex within the path. For z, within the path from z to v starting from z, look for the first edge e such that its endpoint closer to v is compatible with w and its endpoint closer to w is compatible with v: whenever there is such edge we will say that e is compatible with P. We explain why we can always find such e in the lemma below: Lemma 3.15. In the process above, we can always find an edge compatible with the path P as we move from z to v. Moreover, we can find such edge before we reach a vertex that has same type as z.
Proof. Assume for sake of contradiction, we cannot find such edge. Starting from the edge that contains z, since type(z) = type(v) it must be incompatible with w, so its other endpoint has to be same type as w. Now whenever we have an edge where the endpoint closer to z has type w, its other endpoint has to be type w again. This leads to all vertices from on the way from z to v, except for z, have type same as w, which contradicts the fact that type(v), type(z) = type(w).
Hence the above procedure is well defined. Proof. Since each marked vertex either provides 0 or 1 excess weight, we get (C1) from the fact that each component contains at most 3 marks. The condition (C2) follows from the construction: we picked a path or a tree and made sure the endpoints were compatible. To see that condition (C3) and (C4) is satisfied we do a case-by-case analysis.
First start with the case when we have an edge e where both endpoints are of height 1. Assume for the sake of contradiction that w(e) ≥ 3. From Remark 3.16, at least one endpoint is a passive mark of type 0 and call it v. Since both endpoints cannot be passive (otherwise they are both of type 0), the remaining empowerment has to come from a sandwiched mark. Let z be the sandwiched mark that empowers e and w be the remaining mark not of type 0. Since e is the first edge within the path from z to v that is compatible with the path vw, all vertices from z to v except z and v should have same type as w. But this means the endpoint of e that is not v has to be a special vertex and w is that vertex. Since z has to be sandwiched between v and w, we get that z = w which contradicts that we cannot have a doubly marked vertex without the extra mark being type 0. Hence (C3) holds in this case. Now when e is a maximal edge, in order for us to have another edge f that is 3-weighted in the component, we need to have a sandwiched mark: there are three marks v, z, w on a path with type(v) < type(w) where the mark on w empowers e and marks at v, z empowers f. Since both endpoints of e are of height 1, we have w to be of type 0, which contradicts type(v) < type(w).
In the case when e has both endpoints of height 2, its weight being bounded by 4 is basically (C1) which we have shown. Condition (C4) holds automatically as well from (C1). So the remaining case to consider is when one endpoint of e is of height 1 and the other being height 2. We name them a and b respectively. Assume for the sake of contradiction that w(e) = 4. For this to happen, the component containing e must have 3 passive marks, meaning no vertex 1 or 2 present. Moreover, since a is of type 0, there is no doubly marked vertex. But then we cannot have three passive marks all empowering e, which leads to a contradiction. This finishes the proof of (C3) in this case. Condition (C4) in this case holds automatically from (C1).
For example take a look at the trirooted forest in Figure 12. First start with the trivial component which only contains the vertex 5. Its image under φ 2 is again going to be a single vertex 5. Next let us look at the tree consisting of vertices 9 and A. This has degree 1 and the marked at A is not on the smallest vertex of the component. This is a passive mark and will empower the edge 9A. Hence the image of this tree under φ 2 will be the edge 9A having weight 2. Finally look at the component consisting of vertices 3, 4, 6, 7, 8. This is a degree 3 component, with the mark at 8 being on the path between mark at 6 and 4. So the mark at 6 empowers 36, and the mark at 8 empowers 47 (the edges lying at the end of the path between 6 and 8). To see which edge the mark at 8 empowers, we look at the segment from 8 to 4 (here 4 is chosen instead of 6 since 4 < 6), then look for the first edge such that the endpoints are compatible with marks at 4, 6 respectively. Edge 78 does not qualify since type(7) = type(6) = 1. Edge 47 qualifies since type(4) = type(6) and type(8) = type(4). Hence its image under φ 2 will be the same underlying tree with edge 36 empowered once and 47 empowered twice.
Proposition 3.18. The map φ 2 is a bijection between correctly marked trees of G red and correctly weighted trees of G red .
Proof. Here we describe that inverse map to φ 2 : a map that sends a correctly weighted tree to a correctly marked tree. We do a case-by-case analysis based on the number of weighted objects inside the component which we denote as c. In the case c = 0, simply set the smallest vertex in the component as the sole marked vertex. In the case c = 1, if the weighted object is a special vertex, mark that vertex. If the weighted object is an empowerment on an edge e, look at the shortest unique path between the smallest vertex v of the component and e, then put a mark on the endpoint = v. When c = 2, take the shortest path containing the objects, put marks on the endpoints. Finally in the case c = 3, take the smallest tree containing these objects. If the empowered objects each contain different leaves of this tree (so there are three leaves), simply mark those leaves. If not then this is a path between vertices a < b with an empowered edge in the middle. From this edge in the middle, move towards b and look for the first vertex that has type different from a and b, then mark that vertex and mark the vertices a and b as well. Now given a trirooted forest, we define φ 2 on it by applying φ 2 on each of its component (a tree) and taking the union of the resulting weighted trees to get a weighted forest. Given a weighted forest (F, w) where each component is a correctly weighted tree, we define its blueprint ¶(F, w) as the blueprint of its preimage under φ 2 .   Definition 3.19. For a triconed graph G, a 3-weighted forest is a weighted set of edges (F, ω) with F ⊂ E(G red ) satisfying: • F induces a forest in G red . Each component is a correctly weighted tree.
For example take a look at the weighted forest (F, w) in Figure 13. We have two nontrivial components, each of them being a correctly weighted tree. To find the blueprint, we look at the preimage of each component under the map φ 2 , to get the two nontrivial components in Figure 12.
Hence the blueprint turns out to be edges 01 and 02. It being acyclic implies that what we have in Figure 13 is indeed a 3-weighted forest.

PURE MULTICOMPLEX
In the previous section we constructed a map φ 1 that sends a spanning tree of a triconed graph G into a trirooted forest, and a map φ 2 that sends a trirooted forest into a 3-weighted forest which can be identified with a monomial supported on a forest. In this section we study the properties of the image set of φ := φ 2 • φ 1 and show that we get a pure order ideal. Proof. Let T be any trirooted forest and φ 2 (T ) be the resulting 3-weighted forest. We want to show that for any edge e that appears in φ 2 (T ) (hence in T ), that φ 2 (T )/e is again a 3-weighted forest. Let C stand for the component containing e. We first need to show that φ 2 (C)/e is either a correctly weighted tree (when w(e) ≥ 2) or becomes two correctly weighted trees (when w e = 1). The conditions (C1), (C3), (C4) again hold pretty much from definition, so we only have to check for (C2). When w e was at least 2, the compatibility again follows. When w e was 1, so we are deleting the edge e, the set of weighted objects gets partitioned into two disjoint components, so compatibility still holds. Now we have to check that the blueprint is still acyclic. Unless in the case we have a sandwiched mark, the resulting blueprint is a subgraph of the original blueprint of the component. In the case there is a sandwiched mark, which only appears in a degree 3 component, recall that there are no other edges in the blueprint of T . The new blueprint will be a single edge, hence is automatically acyclic.
For example take a look at the 3-weighted forest from Figure 13. Thinking of this as a monomial, we want to show that this monomial divided by x 36 is again a 3-weighted forest: it is drawn in Figure 14. First notice that as we remove the empowerment of 36 from the component, what we get as a result is still a correctly weighted tree. The preimage of this new tree is in the component consisting of vertices 3, 4, 6, 7, 8 in Figure 15. The blueprint of this new component is just the edge 02, so the blueprint of Figure 14 is acyclic. Hence the weighted forest in Figure 14 is indeed a 3-weighted forest. The corresponding spanning tree of G is drawn in Figure 16. Proof. Recall that from Corollary 3.11, a monomial is of largest degree if and only if all normal marks are passive and the blueprint is spanning. Hence we need to show that given any trirooted forest T that does not satisfy this property, we can come up with a new 3-weighted forest (F ′ , w ′ ) that is divisible by φ 2 (T ) = (F, w).
The only case when we have a normal mark on a vertex v that is not passive, is when the mark is the sole mark of the component and is located at the smallest vertex of the component. In (F, w) the component C containing v has no empowered edges. If C only consists of v, pick any edge e adjacent to v in G red (which exists since we are assuming no coloops from Remark 3.4) and add it to F with weight 1. This component is obviously correctly weighted and the blueprint doesn't change, so we get the desired 3-weighted forest. If C has at least one edge, empower any arbitrary edge of this component. We still get a correctly weighted component, and the blueprint stays the same so we get a 3-weighted forest we desire.
Hence from now on we may assume that all normal marks of T are passive. This means that only potential non-passive edges in the corresponding spanning tree φ −1 1 (T ) are 01 and 02. Let us first start with the case when 01 is an edge of T . From Remark 3.4, since 01 is not a coloop, we can replace 01 some other edge e to get a spanning tree of G. If there is a path from 1 to 2 in the graph not using 01 (which corresponds to ¶(G red ) containing the edge 12), then we can set e = 02. The resulting trirooted forest is obtained from T by adding an extra mark to 2 and making it a doubly marked vertex. This new mark will empower some edge and keep the previous empowerments coming from other marks. In the original blueprint, it contained the edge 12 and didn't contain 01 or 02 thanks to Lemma 3.7. The new blueprint consists of edges 01 and 02 so is acyclic. Hence this is the desired 3-weighted forest.
The remaining case to consider is when there was no path from 1 to 2 in the graph not using 01, and the components of G red containing a mark of type 1 has no other marks in it. Moreover any regular mark is passive. In terms of the blueprint, thanks to Lemma 3.7, it is either empty or only consists of the edge 02.
If there is a component C with a sole mark of type 1, there is an empowered edge f coming from that mark in C. We wish to show that if there exists a vertex of type = 1 in C, then we can add an empowerment while keeping it a correctly weighted tree. If one of the endpoint of f is not of type 1, we simply increase w C (f) from 2 to 3. If not, look at the minimal path from the vertex of type = 1 to e and empower the first edge along this path. We get a correctly weighted tree, and the blueprint gets an edge adjacent to 1 added but is still acyclic. Hence this is the desired 3-weighted forest.
Therefore we may assume that all components containing a mark of type 1 only contains vertices of type 1. Now assume that a component C with type set ⊆ {0, 2} contains a vertex v of type 1. Unless in the case we have two marks a, b in C each of type 0 and 2 respectively, and a lies in a path between v and b, we simply add a mark to v to get a correctly weighted tree such that its image under φ 2 is a correctly weighted tree and divides φ 2 (C). In terms of the blueprint, we are adding an edge adjacent to 1 and is acyclic. If in that case, if there is a vertex of type 1 in the path between a and b, set that as v instead. Otherwise, we put a mark on v and at the same time move the mark from a to the first vertex along the path from a to b that is of type 0. If all vertices as we go from a to b are of type 2 (aside from a), we move the mark of a to b and make b a doubly-marked vertex. This gives a correctly marked tree such that its image under φ 2 is a correctly weighted tree and is divisible by φ 2 (C). In terms of the blueprint, we are adding an edge adjacent to 1 and is acyclic. In any of those two cases, we get a 3-weighted forest we desire.
Hence we may assume that all components containing a mark of type 1 only consists of vertices of type 1, and other components only contain vertices of type 0 or 2. So the edge e that we can replace 01 with will be an edge outside B 0 and adding it will merge a component with vertices of type 1 and a component C with vertices of type 0 or 2. Thanks to this condition compatibility between empowered objects on different sides is guaranteed. So the resulting merged component is again a correctly weighted component and we get the desired 3-weighted forest.
Finally we have to consider the case when the spanning tree B doesn't contain 01 but contains 02 as an active edge. Since 02 is active it means there is no path from 2 to 1 that doesn't go through 02 in B. From this point we pretty much replicate the proof for 01 above: we first reduce the problem to the case when any component containing a mark of type 2 can only contain vertices of that type. Then we further reduce to the case when any component not containing a mark of type 2 can only contain vertices of type 0 and 1 (this part actually turns out to be much simpler that that for 01 above. This is due to 2 being bigger than both 0 or 1). So the edge e that we can replace 02 with to get another spanning tree of G, is going be one that connects a component consisting only of vertices of type 2 to a component consisting only of vertices of type = 2. The merged component is correctly weighted and we get the desired 3-weighted forest.
For example, suppose we have the non-maximal spanning tree shown in figure 17, with its 3rooted forest and 3-weighted forest in figures 18 and 19 respectively. Then, we can use the method used in the proof of purity above to construct a tree with higher passivity; since 9 is an active normal mark, we replace it with a mark on the vertex 10 as shown in figure 20. (For reference, figures 21 and 22 show the corresponding 3-weighted forest and spanning tree respectively.) 5 is also an active normal mark, so we remove the mark on 5 and add the edge 56, shown in figure 23. (As before, see figures 24 and 25 for the corresponding 3-weighted forest and spanning tree respectively.) Finally, since 01 is present, as there is a path from vertex 1 to vertex 2 which does not contain 01, we replace 01 with 02. This can be seen in figure 26, with figure 27 showing the final 3-weighted forest and 28 the final spanning tree. Proof. From Lemma 3.10, the passivity of a spanning tree gets sent to the number of edges in the forest plus the number of passive marks under the map φ 1 . The underlying forest doesn't change under the map φ 2 , and each empowerment comes from a passive mark from Remark 3.16. Hence the degree of the resulting monomial is same as the passivity of the spanning tree we started out with.
For example take a look at the spanning tree B back in Figure 16. This spanning tree has 04, 27, 2A, 36, 38, 47, 78, 9A as passive edges. In the trirooted forest we get under the map φ 1 , the  x 78 x 2 9A which has degree 8 as well.
Combining the above three propositions we get the desired result of this paper: Corollary 4.4. Let G be a triconed graph. Its h-vector is a pure O-sequence.

WORKED EXAMPLE AND OTHER DISCUSSIONS
5.1. Worked example. Look at the triconed graph G of Figure 29. All the spanning trees of this graph are drawn in Figure 30. The trirooted forests of the spanning trees we get by the map φ 1 are drawn in Figure 31. The 3-weighted forests we get from the trirooted forests by the map φ 2 are drawn in Figure 32. In each figure, the poset structure is given by divisibility of the corresponding monomials. We believe next step in extending our methods is for radius 2 graphs (graphs dominated by a claw) or graphs dominated by a path. When we were only dealing with 3 special vertices 0, 1, 2 the acyclicity of the blueprint could be checked quite easily. But when we have more special vertices, acyclicity of the blueprint gets a lot harder: there can be cycles that involve a number of components.
Regardless, coming up with an analogue of correctly weighted trees and trirooted forests, and then showing a passivity preserving bijection from the set of original spanning trees does not seem too hard. The really hard part seems to come from trying to come up with an analogue of the map φ 2 . The case when all the marks lie on leaves of minimal tree containing all marks within the component seems easy: we simply let each mark empower the adjacent edge within the tree. But when the minimal tree containing all the marks has some marks in the interior (in this paper we only had at most one mark being sandwiched, but there can be more when we have more than 3 types), it seems pretty hard to decide which edges these marks will empower.