 This is a joint work with Jeff Dudek from Rice University and what I am going to talk about is basically about the mechanism of manipulation a solution space of Boolean function that described as Boolean formulas for certain properties in this case of counting. So as you know, counting the number of solutions of Boolean formula is a very important problem and it can be found in software engineering networks, machine learning only a few days ago there was a very good talk here that ties counting to network, neural network verification and machine learning. But counting is also a very hard problem, so the decision problem variant of giving a formula in a number, whether the number of solutions of the formula is bigger or smaller than the number, it's basically a p to the sharp p hard, which means it is in a complexity class that it is indeed contained in p space but contains the polynomial hierarchy and this is basically thought a theorem from 91. But although we have this theorem, there is little that we know about the world of complexity classes and so we can always keep asking ourselves whether the complexity of the polynomial hierarchy, the complexity of counting can be brought down. So in this talk I want to look at another angle to reason about the complexity of counting and I'm going to use it by manipulating the assignment space of Boolean function that described as Boolean formulas and for that I'm going to define the concept of transformations and first I'm going to formalize exactly what it is. Then I'm going to show some nice combinatorial properties of transformation that allows us to play with the solution space and eventually I'm going to bring the transformation conjecture that basically says that if there exists such polynomial size transformation between every two formulas then complexity of counting can be brought down to somewhere in some level in the polynomial hierarchy. So I will start, okay, a Boolean formula, so a Boolean formula we have over n Boolean variables and let's fix this number n for the rest of the talk and we have a Boolean connectives and or negation and so on. And let's also assume that we have an order of the variables that Xn is the most significant bit and X1 is the least significant bit such that if we are talking about the assignment space of the formula then that is the space of all possible solutions then we can describe it in a lexicographic order when 0, 0, 0 is the top and 1, 1, 1 is the bottom. And every Boolean formula is a set of solutions that a solution is just an assignment to the variables for which Phi is satisfied. So this is a quick example that we have X1 or X2 and the assignment space is all possible assignments. This is 2 to the n, in this case it is 4 and the solutions here are, there are three solutions. Sharp Phi will denote the number of solutions and the size of Phi basically it is the number of the symbols that Phi has. And as you can see here for example, so we have two formulas, each one of them has different solution space and the one to the left it is typical that the one and the zeros and then zeros and ones and so on. But the one to the right is really much nicer. You see all the ones are being in one block and all the zeros are up. And for that kind of solution space counting is actually easy and it can be done in polynomial time by a simple binary search. So the question that is interesting to know whether we can somehow take Phi and transform it into another formula Phi prime that has a nice solution space to count. So I am going to define the formalism to which we can pursue this question. So we have a formula that we call it a transformation formula and what this is basically, this is a quantified Boolean formula. The quantification there is important that it has a 2n free variable, think of a domain X of size n and range Y of size n also. And basically it describes a bijection from the solution space from zero one to the n to zero one to the n. In that sense that if A and B are assignment to X and Y respectively, then T of AB is one if and only if GA equals B. And so this is a Boolean formula for a transformation and how we apply the transformation to a given Boolean formula with only n variables. So what we do, we construct this following formula below T of Phi Y basically existing such that T XY and Phi X, which basically means that, so T Phi of Y also is as only n variable, same number of variables as X has. And T Phi of Y is true basically if the X, there is a unique X because T is a bijection that sends X to Y for it Phi X is true as well. So in that sense we have that A is a solution to Phi if and only if G of A, G is the function that T describes the bijection is a solution to T Phi. And it is easy to see that since it is a bijection and all then there is also a counting preservation such that the number of solutions that T Phi has and the number of solutions that Phi has are basically the same. So let's see some nice examples. So first we have this plus transformation and in this transformation as you can see this is basically a big formula that you can see below. I will not go into it but it's basically the syntax of the operation plus and we have existentially quantified inner variable disease that basically they describe the carry that we need to compute the plus. And as you can see for this transformation it basically shifts the solution space so it shifts the solution space in some a few ways up so it basically just moves the solution space but it keeps the same order of the variables. If you can see I painted it in blue so this zero moves to this zero and all of the others are just shifting so it's kind of a rotation. And we can also think of another transformation that basically we just permute the variable so here we just permitted x1 and x4 and if we apply to the formula x1 or x3 so we see that this formula x1 or x3 it is become x4 of x3. See for example that 00001 it was transformed to 10000. So x4 and x1 switched places and same idea we can do is xOR xOR is a bijection therefore the operation xOR therefore we can also have a transformation of that kind and so on. So let me describe some nice algebraic properties of the transformations and these properties are just follow up from the fact that t is a bijection there is it's really simple. So for example t, phi, or psi is logically equivalent. This means that they have the same solution space of t, phi, or t, psi same for conjunctions and same for denigation. And maybe something more useful is that we can also do composition of transformation. So if we take two formulas t1, t2 suppose they denote some Boolean functions g1 and g2 then we can construct a formula that basically describes the composition of g2 over g1. So what it means it means basically that there exists z so there is only one z unique z because it's a bijection that x t1 sends x to z and t2 sends z to y. And along the same line we also have the inverse transformation because t1 because if we just change the image and the domain then what we get we get the inverse like the inverse bijection of a bijection. And now let's see what we can have with it. So now we can play with the transformation and we can get some interesting things. For example in this transformation that we called merge rotate. So the bottom part of, so it's a composition of transformation, the bottom part of the solution space just stays the same, it's the identity. But here we do a shift and look that when we do this plus we take all these ones and we put them all together. Here and then what we do we just rotate the entire space and then we have all of them one one one one so it's nice we created a block just like we wanted to. And maybe we can take this a few steps further so if we had a weird something much much more complicated to look like solution space then we can just to do iteration after iteration. And so eventually we can combine this to a block. So the question that we can ask is okay whether we can generalize this idea whether we can have it between two formulas. So an equivalent question of whether we can transform a formula to a block is like whether we can transform every formula to another formula. And this is a question that we ask in the paper we have more about types of transformation and we also prove this it is not difficult. But this is the question that now we want to we want to ask whether if if so then this is great and we practically solved a counting. So what we have we have yes actually yes indeed we have. So there is a so we have a theorem there is a polynomial P such that if P1 and P2 are two formulas two Boolean formulas with the same number of variables and the same number of solutions. Then there is a transformation of polynomial size such that T P1 equivalent to P2 and of course the the the catcher that T is allowed to have alternations. So that's why what we have eventually is a QBF formula. Let's look into that. So suppose that we have the let's let me briefly go over the proof. So for every assignment I denote the index of the assignment the one index of the assignment is the number of solutions that are smaller index. And zero is the I call it the zero index it is the number of non-solutions that are smaller than a. So if we take here this one then its I index is two because it has two solutions smaller and there are no non-solutions so its I index is zero. And what we want to do so we construct a language of all the formulas P1 and P2 along with relevant assignments A and B such that the index of A in P1 and either the index of A the one index of A in P1 is equal to the one equal one index of B in P2. And they are both solutions or that they have the same zero index and they are non-solutions. So in this case you can see that this one will actually be assigned this to this here because they have the same they are both solutions and they have the same index. They both have the same one index. So this is the language and this language is in P2 sharp P because there is a Turing machine that with some counting can tell you whether or not they have A and B have the same index. And because of that it is in P space so there is a by some argument there is a QBF formula that describes L and if we fix P1 and P2 then we get that there are three variables there are for A and B so this is basically the transformation that we want. But this transformation as I said it has it is also polynomial it the number of alternation there is not constant. So the question is whether we can have more and whether we can restrict T to have K alternations only where K is some constant. So now where therefore there is this transformation conjecture at K. That basically it says that there is a no on the same line of the theorem that we had before that basically said that there is a polynomial P and K such that if P1 and P2 have N variables and the same number of solutions then there is a transformation T with only a in Sigma K P which means that with only K alternation. Of size no more than P of the size of P1 P2 and N such that T of P1 is logically equivalent to P2. And as we can see then on one hand we have that if the if counting the complexity of P2 sharp P collapses to Sigma K P then the transformation conjecture at K holds and the idea is that we just repeat the same idea that we had in the previous. theorem we construct the language but this time we can do the counting in Sigma K P so the formula overall formula that we construct is only a K alternation. And along the same line now we come to the other part that if the transformation conjecture in K is true then also we can collapse P to the sharp P to Sigma K plus 4 so there is a gap here. That between Sigma K of once and Sigma K plus 4 that we still need to close and the idea is basically that what we want to do so suppose that we have this transformation so for some K. And with some polynomial appropriate P so now if we giving a formula P and some number C we want to see whether the number of solutions is bigger or smaller than C right this is what counting is. And the idea is that we construct a Turing machine that guesses an order over the variable it guesses a transformation because this transformation is of polynomial side. And then what it has to do it just has to verify it has to verify that T is that the transformation that it guess it is indeed a Boolean formula that it is indeed a bijection. And that it is indeed transforms P to a blocks of size C. And this because they are all there because all the verification and all that there are other four alternation and that gets in so eventually we have that M has K plus 4 alternation. So basically this is basically the main concept of this talk so I introduced the transformations and this is the idea that we have of manipulating the solutions. Space and I showed some combinatorial properties and they are more combinatorial properties than one can think of and it is really I tend to think of it as a nice ruby cube that you just apply more transformation and more and you can play with the solution space. And we also I showed the conjecture that if it is holding it basically P to a sharpie collapses and what we want to do so we're okay on the let's say as a hobby we want to find more interesting transformation. Such as multiplicity and all and exactly see how they change the solution space same as plus did a nice shift for us. And we also want to see how we can apply it to actual problems to more practical problems in counting such as approximate counting and all and this is the other thing that we already started to discuss. Thank you. So you can let's suppose that you have some certain variable that you know that you have a guess that more of the solutions are going to be focused on this or on this. Then you can basically focus the transformation towards this exact solution space. So yes you can you can you can so in this case I described the bijection but of course you can quantify over a free variable and once you quantify over a free variable then or maybe you can just ignore it. Then you have the solution space is a smaller but also the number of solutions. So the general one yeah I mean so it is a fair question so if you are talking about this one. So this is basically well you can do it so a touring machine and all and all and also there is a way but in the paper we also show a much more down to earth general transformation that it is using only existential quantifier but it can be of course exponentially long there is a trade off. But I think that if you work a bit and you enter more more universal quantifier in between then you can tame it length 12 polynomial size. So yes we show it in the paper. How do you measure the size of the transformation? It's a QBF formula with normal measurement size. What's the size of the transformation? No this transformation so what our theorem says is that we give you there is a polynomial such that the size of transformation is polynomial with this polynomial to the size of the formula. What is the size of the transformation? So it's basically it's a Boolean formula so it's the number of symbols. QBF it's the number of symbols that the QBF formula will have. Well if you are using some sort of this variable X1 goes to X3 or something. Yes.