 Okay, thanks everybody for making it out to the seminar today. Today we've got Jane Coons from North Carolina State University who will be talking about Torch Geometry of the Cavender Ferris name and model with the molecular clock. Go ahead and take us away. Great. Yeah, so first of all I want to say thanks so much for the invitation to come speak here today. It's so nice to meet some new people and come to your seminar. So yeah, today I'll talk about some research that I've done with my advisor Seth Sullivan at NC State. I'll talk about Torch Geometry related to some phylogenetics model. Yeah. Oops, okay. All right, so here's a little outline of the talk. First I'll start us off with some preliminaries and definitions that we'll need going forward. Then I'll introduce this model that I'm talking about and I'll describe what the vanishing ideal of this model looks like. That's this phylogenetic invariance business. It'll be a Torch ideal so it has a nice polytope associated to it and we can say some interesting combinatorial things about that polytope and then I'll talk about the air heart theory of that polytope and how it relates to combinatorics of alternating permutations. And these are the two papers that this work is based off of. Okay, so I'm sure most people here know this but for the sake of completeness, a tree is a connected graph with no cycles. So here's an example of a tree. The leaves of the tree are the nodes with degree one. So that's what I've circled in blue at the bottom. I'm interested for the purposes of this talk in only thinking about rooted trees. So we have a distinguished node called the root and it has degree two. And then I'm also only interested in binary trees. So this means that all of the vertices that aren't the root and aren't leaves have degree three. So these two green nodes in the middle that I've circled have degree three. So this is a binary tree. And I'm also interested in assigning edge lengths to my tree. So that'll be T sub edge, T sub e for each edge. Okay, then a node of my tree is called a cluster node if it is adjacent to three interior vertices. So these two circled in red are the two cluster nodes of my tree. And just notice that the root can never be a cluster node because it is only adjacent to two vertices. And then a cluster in my tree is any connected set of cluster nodes. So for example, if I put these two together, that's a cluster, each of them on their own was also a cluster, but this one's maximal. And then the neighbor set of a cluster is just all of the internal nodes adjacent to an element of the cluster. So for example, circled in green is the neighbor set of this cluster. Okay, so that was just some definitions related to trees. And now I'd like to use these trees to describe evolutionary relationships between some set of organisms or what I call taxa. And the models that I'm interested in using are called point substitution models. So this is modeling mutations of a single aligned site in the genomes of some species. So for example, I've got this little three leaf tree here, got human chimp and gorilla. And something that this tree would tell you is that humans and chimps are more closely related to each other than they are to gorillas. And here are some DNA sequences of each of them that I've made up. And so we align them and that's its own problem. And we look at the sites where they differ. So for example, we might look at this last site where we see C, T and A. And so once we pick that site, we'll replace each species with the DNA base that it has at this particular site in its genome. And I'm going to simplify this even further by only taking into account whether that base is what's called a purine or a pyrimidine. So the purines are A and G and the pyrimidines are C and T. And the reason that we split them up this way is because they have similar chemical structure to one another. And so I'll use U to denote purine and Y to denote pyrimidine. So in that way, I've made this just a two state model between purine and pyrimidine. So this is called the the Cavendr Ferris Neyman or CFN model. And it arises as a continuous time Markov process along a tree with labeled edge lengths. So I have one rate matrix that has a free parameter alpha for this Markov process. And this describes the rate at which purines mutate to pyrimidines and vice versa. And then to get a conditional probability matrix along a certain edge, I'll take the matrix exponential of Q times the branch length along that edge. And this is the matrix that I get in terms of my rate parameter alpha and my edge length. And this T sub E can be the time elapsed over edge E. It can also mean like the rate of mutation along a certain edge. There are a couple of different biological interpretations for what this T might mean. OK, so that was just the CFN model, but the title of the talk said that there was some molecular clock condition. So this is what what we've added in our work. So what this molecular clock condition says is that if I pick any internal node of my tree and I pick two leaves that lie below it, then the time elapsed along the path from that internal node to either of those leaves are equal. So, for example, if I start at B, there are only two leaves below it. And this says that T3 is equal to T4. If I look at vertex C, it says T5 is equal to T6. If I start at edge A, there are a couple of different paths I could choose. But for example, I get T1 plus T3 equals T2 plus T5, et cetera. And this is equivalent to saying that we're restricting our attention to ultra metric trees. OK, so how can I compute probabilities of observing some sets of states in this model? So first of all, I'm going to associate my set of states, which are purine and pyrimidine with Z2, partially because it's just easier to look at zeros and ones. And also because this is what is called a group-based model in the literature. And then to compute the probability of observing some states at the leaves of my tree, I need to sum over all of the possible assignments of states at the internal nodes. And my model always assumes a uniform distribution of states at the root of the tree, so that the probability of observing a zero or one at the root is just one-half. So for example, let's look at this three-leaf tree and compute the probability of observing all zeros at the leaves. So to do that, I need to look at all four assignments of states to the internal nodes. So out front I have a one-half that comes from this uniform distribution. And then I have this sum. And the first term is what I get when I just label them both with zeros. So in my transition matrix, I have the probability of transitioning from zero to zero along edge A, and then the probability of going from zero to zero along B and C and D. So that's this first term in the sum. The second one comes from this labeling zero, one. So along edge A, I go from zero to one. And this entry in the transition matrix is the zero-one entry that says the probability of going from zero to one along edge A, then one to zero along edge B, one to zero along C, and zero to zero along D. And I do this for the two other labelings of states of my internal nodes. And that gives me this probability. Are there any questions about like the construction of this model so far? I should have said just feel free to jump in if you have any questions at the. So that was just for a small tree, but we can do this in general. So for each, if I have n leaves and I have a zero one vector of length n, I can write the probability of observing that set of states at the leaves as follows. So again, I have a one-half out front. Then I sum over all of the possible labelings of the internal nodes of my tree. And then I just take the product of the entries in the transition matrix along each edge with that given labeling. And that is how I compute a probability with these hidden variables at the internal nodes of my tree. Now I'm going to do this kind of funky looking linear transformation called the discrete Fourier transform. So I'll introduce some new coordinates. I'll call them cues and they still have zero one vectors as input. And they're just some alternating sum of these probability coordinates. And it's kind of like, yeah, why would you want to do that? But this sort of miraculous thing happened. This theorem do independently to Hendy and Penny and Evans and Speed says that if I have a probability distribution of what's called a group-based model on this tree, then once I apply this discrete Fourier transform, these cue coordinates are parametrized by monomials. So kind of miraculous thing because these P's are just some big polynomials in the entries of the transition matrices. But actually once I apply this linear change of coordinates, these coordinates are parametrized by monomials. We can also simultaneously diagonalize these transition matrices to get new parameters, and that will allow us to explicitly write down this monomial parameterization. So this A0 upper E is just the sum of the first two the first column of the transition matrix. And A1 upper E is their difference. In particular, notice that A0 upper E is actually just one because this column is a probability distribution, but it'll be nice to think of it as its own parameter for now. OK, so now using those parameters, I can write down this monomial parameterization that I promised. So so here's how I get it. I get some product of these A upper E's. And I'll say how you get the subscript in a second. Whenever the sum of these I's, so I1 up to In is equal to zero, Mod 2, and I get zero if they're equal to one, Mod 2. And the way I get the subscript on each of my A's is to take. So if I look at a certain edge E, I look at all of the leaves that lie below it, I sum them up Mod 2. And that is the the subscript that I get. And I'll do an example of this in one second. But what's especially nice about this is that these labelings of the leaves that sum to zero, Mod 2, which correspond to the nonzero Fourier coordinates are in bijection with systems of disjoint paths between leaves of my tree. So this kind of each of these Fourier coordinates corresponds nicely to a combinatorial object within my tree. So let's look at this little example. I've got this labeling 11011. Notice that it does sum to zero, Mod 2, so it's a nonzero coordinate. And here's how I get this parameterization. So if I look, for example, at edge B, there are four leaves below it. So one plus one plus zero plus one, Mod 2, is one. And that's why I see A1 upper B. But for example, if I look at D, edge D, the two leaves below it are labeled by one and one, sums to zero. So I get A0 upper D. And here's the corresponding system of disjoint paths. The way that you can think about it is starting at each leaf that has a one and tracing the path back up to the root until you meet up with another path. That's how you get this bijection between systems of disjoint paths. And just notice that if an edge is in this system of paths, then A1 upper E, A1 for that edge, appears and otherwise A0 appears. So that was all just for the standard CFN model with no molecular clock. And now we can see what happens to this parameterization when we add the molecular clock condition. So what ends up happening is that if I take any internal node V and I take two paths to leaves descended from V, so that's my these E1 up to ER and F1 up to FS, then the product of these parameters along those edges are equal. So that's sort of how we can translate the molecular clock condition into to this parameterization. And what that means is that we can introduce new parameters that now only depend on the interior nodes of archery and not on the edges. So I introduce B0 upper V to be the product of these A0s along any path from V to a leaf descended from it. And I define V1 upper V to be this thing. And if you, yeah, it seems a little funny why you would do that, but it is just sort of a thing that makes everything cancel nicely. But the point is that this is well defined for each internal vertex because it doesn't matter which path I pick from that vertex down to any leaf below it due to the due to the molecular clock condition. Yeah. OK. So now I can introduce this new notation. So if I have my labeling of my leaves that sum to zero, mod two, and I have its associated path system, then the top set of this I1 through I M is the set of all maximal nodes in the system of disjoint paths associated to I1 through I M. So, for example, in this tree down here with this system of paths, U is a topmost node and W is a topmost node. And so this top set is U and W and the complement is V and X. And so when we apply the molecular clock condition, we get this new monomial parameterization where I take the product of these B1 upper V, where V is in the top set and B0 upper V if it isn't. So for this particular Fourier coordinate, we get B1 upper U and B1 upper W because they are in the top set and B0 upper V, B0 upper X because they're not. So this is like a much shorter parameterization. That's nicer to kind of look at when you add this molecular clock condition. Okay. The other thing to notice is that if I have two labelings of my leaves that sum to 0 mod 2 and their top sets are equal, so I have two systems of disjoint paths, they might not themselves be equal, but the topmost nodes in them are. Then these Fourier coordinates are equal. So instead of thinking in terms of the Fourier coordinates based on just these labelings of the leaves that sum to 0 mod 2, I'll instead pass to coordinates that are called R sub P, where P ranges over indicator vectors of valid top sets of a path system. And I'll do an example of what this looks like also. But then we can define the ideal of phylogenetic invariance of the CFN model with the molecular clock as the kernel of this monomial map. So where I send R sub P to B1 upper V, this product of B1 upper V, if V is in the top set, and B0 upper V, if it isn't. So we finally have gotten to define the ideal of phylogenetic invariance. And this is Toric, since it's the kernel of a monomial map. And this means that it's prime and generated by binomials. OK, so what does this look like in an actual tree? So remember that each coordinate R sub P is indexed by the indicator vector of a top set of some path system in my tree. So for example, my internal nodes here are A, B, and C. So my Fourier coordinates are indexed as R sub A, B, C. So let's look at all of the labelings of my leaves that sum to 0 mod 2. If I take the all zeros labeling, that's like corresponds to the empty path system. So I get 0, 0, 0 for A, B, and C. If I take the labeling 1, 1, 0, 0, this is its corresponding path and its topmost node is B. So I get an index 0, 1, 0. Similarly, if I take the labeling 0, 0, 1, 1, the topmost node there is C. So I get 0, 0, 1. There are a bunch of different paths and labelings of my leaves that give me just A as the top set. So this is one, for example. Let's show us this and that and that. And each of them give me the same coordinate 1, 0, 0. And then finally, if I label everything with a 1, this is the system of disjoint paths. It has B and C as its top sets or as its top set, but A is not in there, so I get 0, 1, 1. So those are the indeterminates of this ideal. And in this case, the ideal of phylogenetic invariance is this principle ideal generated by this binomial. And just notice that if I added together these vectors subscripts on either side, I would get the same thing on either side, and that's a way that you can tell if the binomial is in this ideal. So what we proved about this CFNMC ideal is that for any rooted binary phylogenetic tree, this ideal has a Grubner basis that consists of degree-2 binomials with square-free initial terms. And the way that we did this is by making use of the Toric Fiber Product Construction. So for most trees, I can see that I can split up my tree and write this ideal as the Toric Fiber Product of the ideals corresponding to these subtrees. Sometimes you can't, and there's kind of combinatorial things that happen that would prevent you from doing that. But in those cases, we can lift the Grubner basis of a subtree to a Grubner basis for the whole tree and give it a certain elimination order and determine that it is indeed a Grubner basis. So if you're interested in kind of the more biological end of this, why might you care about this? Well, we would expect these invariants, these polynomials, to evaluate close to zero on the empirical distribution if I have the correct tree. And the full version of this theorem actually describes how to compute this Grubner basis. So you get a generating set and you could do experiments and actually evaluate your data on these polynomials. Now I'll talk a little bit about the polytope that is associated to this ideal. So first of all, some definitions related to polytopes. So a polytope is just the convex hull of finitely many points in d-dimensional space. Or equivalently, it's the bounded intersection of finitely many half-spaces. And a great thing that I love about Toric ideals is that they always have an associated polytope that gives us geometric information about the corresponding model. So here's how we can see that correspondence. If I've got a monomial map that sends xi to some product of t1 through td, I record these exponent vectors, so like a1i, a2i, et cetera, and I make them columns in a matrix. So it's just the exponent vectors of each of the monomials in this map. They become the columns of my matrix. And then the associated polytope is the convex hull of the columns of this matrix. And getting information about this polytope can tell us interesting things about the Toric ideal. So for our purposes, the CFNMC polytope associated to this Toric ideal is the convex hull of all of the valid top vectors of systems of disjoint paths in my tree. So just like how we went through to get the subscripts on these R indeterminates, those are exactly the vertices of my polytope. So that's what I have here and can draw a little picture of it. We get this square pyramid with a shifted point. So that's the polytope in this three-leaf case. So here are some facts that I'll present now and then basically the rest of the talk describing in more detail. So what we showed is that if we have an N-leaf tree, first of all, the number of vertices of the CFNMC polytope is the N-th Fibonacci number. Its normalized volume is equal to the N minus first Euler zigzag number. So that's the number of alternating permutations on N minus one letters. The Earhart series is determined by permutation statistics on alternating permutations. And we also computed an explicit facet description that we can write down using combinatorial features of the tree. So this is kind of the polytope facts on the algebra and why might we care about this? Well, the normalized volume of this polytope is the degree of the CFNMC ideal and the Earhart series of this polytope is the Hilbert series of the ideal. So that's kind of the correspondence between the polytope and the toric ideal end of things. Okay, so first of all, I'll talk about the vertex description. So we said that if T is a tree with N leaves, then the CFNMC polytope that I call R sub T has Fibonacci number, many distinct vertices of the N Fibonacci number. And I'll give you a little proof by picture. So here's my tree T and I want to count the number of vertices in its corresponding polytope. So in other words, I want to count the valid top systems of top vectors of systems of disjoint paths in my tree. So I'll pick a distinguished vertex that that is a cherry. So that means it's adjacent to two leaves. So for example, I'll pick C and either that is used in the top system. So either I have the path going from these two leaves below C up to C and get that path, or I don't. If I don't, then I have a zero in the C position. And then my system of paths might as well be in the tree where I chop off everything below C. So that's this T double prime. So it might as well just be in this tree with A and B. And this leaf is now basically C. That has three vertices. And as you can see, these three vertices that have zero in the C position, the A and B positions are exactly the vertices from this R T double prime. So that's what happens if C is not in the top system. If C is in the top system, that means that I have this path between the two leaves below C. In particular, that means that A can't be in my top set because I have to come up to A and down through C. But these paths are supposed to be disjoint and C is already getting used by a path. So that can't happen. So you might as well be in the tree now where you cut off everything at C and also cut off A. So in this tiny example, we just get this two leaf tree with B. It has two vertices. And as you can see in these last two vertices for the big tree, we get ones in the C coordinate, zeros in the A coordinate, because he said we couldn't have a path use that as its topmost node. And then these two vertices for this T prime. So basically it's one thing less plus two things less is a Fibonacci number. And that's kind of a picture version of the proof. I also said that we have a facet description and that uses these cluster structures from the tree. So a point is in this polytope, if and only if the following things hold. So first of all, XI needs to be greater than or equal to zero for each internal node of my tree. Next, if I have two nodes I and J that are adjacent to one another, there's some needs to be less than or equal to one. And this sort of goes back to what I was saying before about using adjacent nodes. So for example, if I look at like B and C here, if I had a path that goes up to C and down, then I couldn't have B as a topmost node because I need to come up through F, go to B, and then back down through C. Right, so they're adjacent to each other. So that means that they can't simultaneously be in a valid top system. So that's sort of what this says. And then this is kind of a more general version of that for clusters. So what this says is that if I take any cluster in my tree, I sum over the elements of that cluster and multiply by two. And then I add in everything in its neighbor set. This should be less than or equal to C plus one. So for example, this was the tree that we saw at the beginning when we were defining clusters. So B and C are a connected set of cluster nodes. They're only adjacent to other internal vertices. The neighbor set is everything else. So I get 2XB plus 2XC and plus all of the other X's is less than or equal to the size of the cluster plus one, which is three. And we showed that these are exactly the facet defining hyperplanes of my polytope. So here's sort of a proof technique for this. A key thing is that the facet description for the polytope when you just have the CFN model with no molecular clock was already known due to these folks. And what we did was construct the CFNMC polytope from just the CFN polytope using a sequence of linear maps. And at each step, we inductively apply Fourier Motskin elimination to get an inequality description for these indeterminate polytopes until we, or sorry, for these intermediate polytopes until we arrive at the one that we actually want. And then there's the business of showing that the extra inequalities you get are redundant and the inequalities that you propose are actually facet defining really have N minus one, app on the independent points on them. And that's sort of the proof technique. Now, I'll talk about the airheart theory of this polytope with a little bit of an introduction to some some terms from airheart theory. So I'll fix any polytope in Rn. It's an n dimensional polytope with integer vertices. And the airheart polynomial is the following function. So for each k, I take the kth dilate of my polytope. So I multiply every point in it by k and I intersect that with the integer lattice and I count how many points are in it. So k is an integer, kp is the kth dilate, and the value of this function at k is the number of lattice points in the kth integer dilate of my polytope. And miraculously, this is indeed a polynomial in k. So as a little example, let's let p be the two-dimensional standard simplex. So that's this red triangle down here. So 00, 01, and 10. If I take the zeroth dilate, that's multiplying everything by zero. So I just get the origin, which of course has one lattice point in it. Ip of one is just the first dilate, which is the polytope itself. It has three lattice points. Ip of two is this orange triangle. We can count that it has six lattice points. And then the third dilate is this yellow triangle, which has 10 lattice points. And of course, as we continue dilating this, we're just going to be adding on the next integer. So we end up with k plus two, choose two as the the air heart polynomial of the standard simplex, which is indeed a polynomial in k. Any questions about air heart polynomials? Then using that, we can define the air heart series of a polytope. So this is the formal power series where I sum over k greater than or equal to zero. I take the value of this air heart polynomial, Ip of k times t to the k. And it's a theorem that this has the following form. So I get some polynomial in the numerator, which we call the h star polynomial. And we divide by one minus t to the dimension plus one. And this h star polynomial has degree less than and plus one. And another theorem is that the normalized volume of this polytope of P is what you get when you evaluate the h star polynomial at one. So in the previous example, our air heart polynomial for the standard simplex was k plus two, choose two. So this air heart series is the sum k greater than or equal to zero of k plus two, choose two times t to the k, which is just one over one minus t cubed. And I mean, this is simple to evaluate at one, but indeed the normalized volume of that polytope was was one. OK, so the combinatorics of alternating permutations, as I mentioned, is going to show up when we think about the air heart series of these CFNMC polytopes. So I'll talk about these a little bit. So an alternating permutation is any permutation sigma such that sigma one is less than sigma two, which is greater than sigma three is less than sigma four, etc. So it zigzags the, you know, if you write it in one line notation, it zigzags up and down. So for example, this permutation three, seven, five, six, one, four, two, that's alternating since three is less than seven, which is greater than five, which is less than six, greater than one, less than four, greater than two. But if I switch five and six to get three, seven, six, three, seven, six, five, one, four, two, that's not alternating because the seven, six, five is is consecutive and decreasing, so it doesn't have that alternating structure. And then the Euler zigzag number is the number of alternating permutations of length N and here is the beginning of that sequence and here is its OEIS entry. A very naturally associated object to these is the zigzag post set ZN. So this is just the post set on N elements with these exact same relations, right? P one less than P two, greater than P three, less than P four, etc. So this one is Z five pictured here and the alternating permutations are exactly the labelings of the zigzag post set that agree with the partial order. This one, other words, these are the linear extensions of the ZN. OK, then to any post set, we can assign an order polytope and here's the half space description of that order polytope. So first of all, it's in X to the number, sorry, R to the number of elements of my polytope. We need to have that each XI is greater than or equal to zero or less than or equal to one and then XI less than or equal to XJ whenever I less than or equal to J is a cover relation in my post set. So for example, I'd see X one less than or equal to X two, X three less than or equal to X two, X three less than or equal to X four and X five less than or equal to X four in this Z five example. You want to know the vertex description. This is the convex hull of all of the zero one labelings of my post set that respect the partial order. So, for example, in Z four, here are the vertices of its order polytope so I can label all of these all of the elements of my post set with all zeros. And that, you know, weakly respects the partial order. I could label everything with zero except for P two gets a one. So we'd have zero less than or equal to one, zero less than or equal to one and zero less than or equal to zero. Great. But I couldn't have, for example, one zero, zero, zero, because then I would have one less than or equal to zero, which does not respect the partial order. So those are the vertices of my order polytope. And something great about order polytopes is that they have nice canonical unimodular triangulations where each simplex corresponds to a linear extension of of your post set. So for our purposes with zigzag post sets, each of these simplices will correspond to an alternating permutation. So I'll describe now what this canonical triangulation looks like. So I have sigma. That's an alternating permutation. And I'll always let V upper sigma sub zero be the all ones factor. And then for each I, I'll set the I upper sigma to be so the vertex prior, so V I minus one upper sigma minus the standard basis factor corresponding to sigma inverse of I. And I'll do an example of this in one second. And then the simplex associated to sigma is just the convex hall of these V zero sigma up to the n sigma. So, for example, if I look at the alternating permutation one, four, two, three, here's how I get its vertices. So I said I always start with the all ones factor. And then I take this all ones factor and I subtract the standard basis factor corresponding to the position of one. So one is in the first position. So I get I subtract the first standard basis factor and get zero, one, one, one. Then I take this one that I just computed and I subtract the standard basis factor corresponding to the position of two. So that's in the third position. So I get zero, one, zero, one. Then I look at the position of three. It's in the fourth position. So I subtract that off and I get zero, one, zero, zero. And then I'll always end up with the zero factor and I subtract off the position of four. And then this theorem of Stanley says that this gives a unimodular triangulation of the order polytope and the number of simplices is equal to the number of linear extensions of P. So in particular, those normalized volume of this order polytope is the number of linear extensions of the post set. OK, so here's how we can apply this to our CFNMC polytope. What we showed is that for any end leaf tree, the normalized volume of the CFNMC polytope is the N minus first Euler zigzag number. And this is sort of the proof idea. So first of all, we show that the polytope for what's called the caterpillar tree is affinely isomorphic to to the order polytope of the zigzag coset on N minus one elements. And I can maybe draw what a caterpillar tree looks like if I can figure this out. Yes, OK, so this is just a tree where on one side I just have a bunch of pendant edges coming off of kind of this spine. So it's like a caterpillar because it's got just a bunch of little legs. Kind of the simplest tree one can think of. And so we show that the polytope for that is affinely isomorphic to the order polytope of the zigzag coset. And then we know the canonical unimodular triangulation of that order polytope has E sub N minus one, so Euler zigzag number, many simplices. So that says that the CFNMC polytope for the caterpillar tree has normalized volume E sub N minus one. And then we use combinatorial arguments to show that the air heart polynomial and therefore the volume doesn't change while as we perform what are called nearest neighbor interchanges to get from the caterpillar tree to any arbitrary tree. So we just show that the the number of lattice points in each integer dilate stays the same when I do one nearest neighbor interchange operation. So that shows that it's true for any unleafed tree. And now I'll talk a little bit about what this H star polynomial looks like. And to do that, I have to mention what a shelling order is. So if I take, whoops, sorry, if I take any simplicial complex, I'll let its facets or pure simplicial complex. I'll let its facets be delta one up through delta sub capital N. Then this sequence is a shelling if the following thing holds. So if I take a simplex I and I take a J less than I, that means there must exist a K also less than I, such that the intersection of delta I and delta J is contained in the intersection of delta I and delta K. And this delta I intersect delta K is a facet of delta I. So this is like a really not a super illuminating definition to look at. But what it means is that as I so I want to start with delta one and add these facets in in the given order. And as I do that, I only am allowed to add in add a facet along some of its facets. So, for example, I take this simplicial complex with three triangles and I give it this labeling. So I start with delta one. That's great. It's added along nothing. So that's fine, empty set. But then when I add in delta two, I'm adding it along just a vertex and not a facet of delta two. And that means that this is not a shelling order. However, if I give it the labeling, I should have given it all along delta one, then delta two in the middle, then delta three. When I add in delta two, it's along that it's shared faster with delta one, then I add in delta three and it's along its shared facet with delta two. And that's a shelling order of this simplicial complex. OK, who cares about shelling orders? Well, you care about them for lots of reasons. But for me, if you're interested in computing the H star polynomial, so let P be a polytope with a unimodular triangulation that is shellable, that has a shelling order and doesn't use any new vertices. And I'll let this delta one through delta N be a shelling of this triangulation. Then for each K, I'll let K be the number of facets in this simplicial complex that are joined along K of its facets in the shelling. So that's what this H sub K is. Then the theorem is that the H star polynomial of this polytope is the sum from K equals zero to the dimension of the polytope minus one of this HKT to the K. So this shelling order, if you count when you add in each simplex, how many of its facets you're adding along, the shelling order can give you a formula for the numerator of your Ahrhardt series. So for us, the way that we're going to compute this numerator is what's called the swap statistic on alternating permutations, which Seth and I introduced in this paper. So I start with an alternating permutation and I'll define this permutation statistic called swap of sigma. This is the number of i such that i appears before i plus one in sigma. And when I swap i and i plus one in sigma, this yields another alternating permutation. And this is a little imprecise. That's my mistake. I should only be able to go up to n minus one because there needs to be an i plus one. So if it were n, there's no n plus one. But yeah, when I swap i and i plus one, I get yet another alternating permutation. And an equivalent way to define this is that this is the number of i from one to n plus one again, such that i appears at least two positions before i plus one in sigma. So for example, here's an alternating permutation. If I swap, say, four and five, this yields another alternating permutation and four comes three before five or two, depending on how you want to count it. However, one swapping one and two does not yield an alternating permutation. Because if I start with one two and if I swap it and get to one, I get this decreasing sequence. And then for all of the other i, we have that i plus one comes before i. So we only have one swap in this in this alternating permutation. So swap of whoops, sorry, that should be sigma. The swap statistic here is one. OK, so finally, we can state our theorem, which says that for any rooted binary tree, the air heart series of the CFNMC polytope. When you to get the numerator, you just take for each alternating permutation the sum of T to the swap of that alternating permutation. And again, the proof idea, we use the fact that the CFNMC polytope of the caterpillar tree is affinely isomorphic to the order polytope of the zigzag post set and that the air heart polynomial doesn't change as I move the caterpillar tree into to become other tree topologies. And then we give a family of shellings of the canonical triangulation of this order polytope, and it's simple to count the number of facets that each simplex is added upon. So here's what these shellings look like. So first of all, we say that sigma swaps to tau. If there exists an I such that sigma inverse of I is less than sigma inverse of I plus one and swapping them in sigma yields tau. So when I do this, so I come before I plus one in sigma. I swap them and I get tau. That's what it means for sigma to swap to tau. And then just note that performing a swap always increases the inversion number by exactly one. So as a lemma, we say let sigma and tau be alternating permutations where the inversion number of sigma is less than that of tau. We'll let sigma and delta tau be their corresponding simplities in this triangulation. Then these simplities share a facet if and only if sigma swaps to tau. Here's kind of the idea of that. Have the alternating permutation one, four, two, three. I swap one and four gives me two, four, one, three. And then if I look at how I got this triangulation, I start with a one vector and then one is in the first position. So I get zero, one, one, one and two was in the third position. So I get zero, one, zero, one. When I swap them, now one is in the third position. So this second vertex is different, one, one, zero, one. But then once I once I subtract the position of two, that's now in the third position or the first position rather, because I've just switched their places. So I get the same vertex in the new simplex as I did before and then everything else is unaffected. So the rest of the vertices are also the same. So really only the second vertex changed. And that means that they share a facet. So the shelling order that we give, that I have my total order on alternating permutations of length N. And I want to order them so that if the inversion number of sigma I is less than the inversion number of sigma J, then I should be greater than J. So I should come after J in the shelling order. Then this order on the simplices of this canonical triangulation is indeed a shelling order. So this condition says that if sigma I swaps to sigma J, then sigma I comes after sigma J, which says that this delta upper sigma I is added along exactly swap many of its facets, because those are the the ones that it swaps to are the the ones that come before it in the shelling order and that it shares the facets with. And then this fact about the H star polynomial comes from that as a corollary using that theorem of Stanley. So I'll leave you with a little open problem. So I'll let W sub N of I be the number of alternating permutations of length N. And here are these W sub N of I. You can make a triangle out of them. Notice that they are symmetric because this polytope is happens to be Gorinstein. And then so so you can prove that this is symmetric kind of based on polytope facts. But I think it'd be really interesting to to have a combinatorial proof that this sequence is symmetric, like a bijective proof, sending alternating permutations with a certain swap number to alternating permutations with like N minus that that number that's a bijection. So yeah, that's an interesting open problem. And with that, I will leave you with some references and thank you very much for for listening to my talk. Thanks. Thanks, Jane. If we could all thank our speaker in some way, and then we'll go ahead and open it up for some questions. OK, do we have any questions for our speaker? Please go back to the definition of swap. Yeah. What was it then? So it's that so your you take your alternating permutation, you look at for each eye from one to N plus one. And you want to count the number of times I appears before I plus one in sigma. And if you swap them, then that still yields an alternating permutation. And this is equivalent to just saying that I appears at least two positions before I plus one, so they're not directly next to each other. Your question was regarding the number of alternating permutations with a given number of swaps. That's what that table was. Yes, exactly. So if we like refine the alternating permutations based on how many swaps they have, for example, there's only one that has no swaps there in N equals six. There are 14 that have one swap, etc. This is a symmetric symmetric thing. Yeah. I mean, another question is just like, is there a nice combinatorial formula for this W sub N of I, which yeah, also open problem. Yeah, because there's no. It's not clear that any simple permutation operation is going to like. Take the number of swaps and subtract it from N plus one or something. Yeah, it's spent a lot of time trying to figure this out. It's like it's more complicated than it sort of seems like it should be. And it's not, you know, it's not just switching the order or anything kind of reversing inverse subtracting from N plus one. No, none of those things. Yeah. Yeah, but it's true because this is like a fact about I think graded posts that that the H star polynomial is going to be symmetric. But that doesn't kind of tell you anything about why. Do I have any other questions for Jane? OK, if not, thanks again, Jane, and have a good weekend, everybody. Yeah, thank you so much for inviting me and for listening. Yeah, bye bye.