 So this is a talk about communication complexity and just to let you know what I am going to be doing, we will be showing a lower bound for multiparty set disjointness problem. And in showing that lower bound, we will see approximation of Boolean functions by polynomials. And I will tell you everything. So the other thing is you can stop me anytime and I thought I kept everything accessible to everybody, but that may not be true. So just stop me and ask me something. So it's also true that much of it will be very trivial for the experts, but the experts are free to correct me when I am wrong. Alright, so what is communication complexity? There are two parties. We call them Alice and Bob. They each have an input. Alice's input is x, Bob's input is y, and they communicate with each other. They send messages to each other. And since they are randomized, we allow them some probability of error. The goal is to compute a certain function. They are told, okay, here is going to be, they are told what their input sets are and they know the function in advance. They come up with a strategy in advance. Then the inputs are handed over to them. Based on their initial strategy, they communicate. In the end, they declare the answer. Okay, so that is the usual communication complexity model. So I'll need to tell you a few things about communication complexity. So the first thing is the matrix of the protocol or matrix of the function. So the rows are indexed by x. The columns are indexed by y. And in this location, you write f of x, y. Okay, so f is the function that they are trying to compute. So this is just, you can say the truth table of the function, but we write it in this two-dimensional way because there are Alice's inputs and Bob's inputs. Now, what's a protocol? Yeah, so I plan to use the board also. So what's a protocol? A protocol is just a tree. The tree has leaves and at each node, it's either Alice's turn or Bob's turn to speak next. Now, when Alice speaks, she has to make the decision about going left or right based on her input. And when Bob makes, when it's Bob's turn, he tells you which way to go. So basically, when Bob wants them to go down the left side, Bob sends a zero, otherwise Bob sends the bit one. Okay, so any protocol can be thought of as this tree. In the end, when they arrive at a leaf, there is an answer stored at this point and that is the value of the function. Okay, so any communication protocol can be thought of as walking down a tree. Now, let's fix a deterministic protocol. I'll tell you about randomized protocols later. Let's consider a particular leaf. And let's ask which inputs arrive at this leaf. Okay, so what pairs of, so there are all kinds of inputs here, X's and Y's and which inputs arrive at this. So for that, if you take a particular input, X, Y, and you want to know, will this X, Y come to this, this leaf, this X, Y has to satisfy some constraints. Okay, so what constraints does X, Y have to satisfy? Well, Alice should certify that on receiving X, she will never have the urge to leave this path. So wherever there are Alice nodes on this path, she just checks whether X will still send her down this path. It won't take her off the path. Okay, so that is one constraint. The other constraint is Bob should check that wherever he is involved, he will have no urge to leave the path. And if these two constraints are satisfied, then we are certain that this input X, Y will lead us to this leaf. So simple thing is that the set of inputs that lead you to a particular leaf consists of a bunch of X's that satisfy Alice's constraints and a bunch of Y's that satisfy Bob's constraints. So that is why it's called a rectangle. Okay, so each leaf of the protocol corresponds to a rectangle. It has some formulas, but it is saying the same thing. So if you, the set of all inputs break up into rectangles, depending on which leaf of the protocol they reach eventually, and each such rectangle is associated with an answer. Okay, so if you look at what I've written there, pi is the protocol. And we want to know what answer it gives on input X, Y. Well, look at the rectangle chi. Chi is the characteristic vector of the characteristic function of the rectangle. That is it's one if the input X, Y is in the rectangle and zero outside. So for those inputs in this rectangle the answer is a sub chi. Okay, and we just sum this over. Now for me it will be convenient to think of Boolean values as plus one and minus one. Okay, so and zero, zero means the rectangle is not used. So this sum ranges over all possible rectangles. Some of the rectangles actually appear at the leaves. For those rectangles there is an associated value plus one or minus one. And if you sum this up, it's clear that the value that the protocol takes on a certain input is the same thing as what this expression evaluates on the same. Now if you have a randomized protocol, what's a randomized protocol? You have a probability distribution on such deterministic protocols. Each of those deterministic protocols gives rise to a decomposition like that. And the final randomized protocol's answer is just going to be a convex combination of these things. And as a result, so if a protocol has only C bits of communication, then only two to the C of these A chi's will be non-zero. The others will be zero. And if you're taking convex combination of such objects, in the end what you will get is a bunch of A chi's which will still satisfy this equation. If you have A chi's so that their sum is bounded by two to the C, you take a convex combination of these things, their sum of their absolute values will still be bounded by two to the C. So this is what we have. So this is what I'll call the decomposition of a protocol using these characteristic functions corresponding to rectangles. Now this is all in the two-party setting. So the next thing I'm going to tell you is about the multi-party setting. What happens in the multi-party setting? Instead of two players, you have K players. Not just Alice and Bob, you have P1 to PK. P1 has an associated input X1, P2 has an associated input X2, and PK has an associated input XK. But there is something strange. Alice or the player 1's input is actually stuck on his forehead. So actually player 1 gets to see the inputs that are on the foreheads of everybody else except him. And similarly P2. And then the protocol is the same thing. That is player 1 says something which is heard by everybody, then player 2 says something. Now whenever a particular player says something, his decision should be based on what he sees. So that is the messages that have been sent before and the inputs that he's able to see. He doesn't have access to the input on his head. So that is how we would like operationally think of a protocol. But even multi-party protocols correspond to trees. And each node here, instead of being labeled by Alice and Bob, it could be that P1 started the communication, sent something and then P7 decided to say something and so on. Now we can ask the same question. What about inputs that reach a particular leaf? By the way, so whenever we have a node labeled P1, then this decision of whether to go left or right should be a function of X2 to XK. Because P1 doesn't have access to the variable X1, the input variable X1. So we have generalized some of the things that we had in the two-party setting. Now let's try to just come up with a notion similar to rectangle. So what was our motivation for considering a rectangle? We asked which are the inputs that arrive at this leaf? Now for an input to arrive at this leaf, P1 should certify that okay, I have no problems. Whenever the input reaches a node that I control, I will send it down the right branch. I will never take it off the path. P2 should certify the same thing. P3 should certify the same thing and so on. And if all the K players certify that from their point of view, the particular input XK is okay, then in fact this X1 to XK will arrive at this leaf. So let's just use the same sort of reasoning. Now previously the constraints that Alice imposed depended only on her input. Now the constraints that player 1 imposes depends only on X2 to XK. So which are the inputs that are liked by P1? So they must have a certain pattern in X2 to XK and they don't care about what the value is on X1. That is instead of being such an object, a band, these were the inputs that player 1 liked, Alice used to like and this band used to be what player 2 liked. Now we will have what we might call a cylinder. It has a certain pattern on this and then the value of X1 can be anything and still the first player will have no objection to staying. Somehow this makes sense. There is one cylinder that represents the constraint of player 1. There is another cylinder that represents the constraint of player 2, player 3 and those points which are in the intersection of all these cylinders. Those are precisely the points that arrive at this leaf. And for each leaf there is a corresponding cylinder intersection. Cylinder intersections now are the equivalents of what used to be rectangles in two-party communication protocol. And now we can just rewrite our decomposition formulas. This part has no change. The protocol now has a variable. Player 1 gets to see X2 to XK, player 2 gets to see X1, X3 so on till XK. Nevertheless, the final, the value of this protocol is the same as this expression where chi is 1 inside the cylinder intersection and 0 outside. And each chi has an associated answer which we write here. And the same thing, what is the randomized multi-party protocol? It is a convex combination. It is a probability distribution over deterministic multi-party protocols, deterministic trees of this chi. And we have the same expression which looks like this. So this is a random combination. This is all we need to know about what communication protocols are, how rectangles or cylinder intersections arise out of communication protocol. This is all we need. Next thing, what is the, so this was a communication complexity of the set disjointness problem. So I will tell you what the set disjointness problem is. So here, so let me just say what it is in the two-party case. Our main interest is in understanding this multi-party set disjointness. But let us just start with the two-party case. So Alice's input is a vector of length n, Bob's input is a vector of length n. Now think of them as characteristic vectors of sets. If there is a position where they both have 1, then the sets intersect. They are not disjoint. So we write the answer plus 1. And when at least one of them is 0, the value of the function is minus 1. So in other words, Alice is going to be given a set. Bob is going to be given a set. And Alice and Bob need to send messages to each other to determine if there is an element in common to the two sets. Multi-party and the same thing. Each of these inputs is now again a set, a subset of a universe of size n which can be thought of as a vector of bits, which indicates which elements are present in the set and which are not. And then we have the same sort of logic that is if there is an element that is present in all the sets, then they obviously are disjoint, otherwise they are disjoint. This is the disjointness function. It turns out, I mean, the disjointness function is a very central function in communication complexity. Communication complexity is used to show lower bounds in many areas, okay, streaming, circuit complexity, proof complexity. And disjointness function plays an important role in all this, especially the randomized communication complexity of disjointness, okay. So it has been studied for a while, and I'll quickly tell you what was known. And then we'll, two parties at disjointness, Alice and Bob. It's easy to see that if one of the parties sends the entire input to the other party, then the other party can, this is not just about disjointness. Any function, if one of the parties completely tells the other party the input, then they can figure out the answer. And that is why this, there's a trivial linear upper bound for any problem. It turns out that even with randomness, you cannot do much better. There is a linear lower bound, and this is pretty deep result. It's been now, I think, quite well understood. There have been newer ways of understanding. So the original proof of Kalyana Sundaram and Schnittger used Kolmogorov complexity, and then there was a discrepancy-based method using some information theoretic ideas by Rasburov, and the modern proofs use this thing called information complexity, okay. But we'll not talk about those. Multi-party set disjointness. And this really has been a nasty problem for quite long. And there was this initial upper bound due to Grolmus, which is linear, essentially, if the number of players is not too large. But it does degrade as the number of players increase. And for a while, things used to be around polylog, the lower bounds used to be polylog, until some recent progress, okay. And these were really substantial papers that used important mathematical ideas, viewing this matrix really like a matrix, not just a combinatorial object to record pluses and minus ones, but doing linear algebra around them. And using those such lower bounds would derive. And in some sense, perhaps these lower bounds are not comparable, but for small values of K, one or the other is better. So what are we going to do today? Just keep in mind, as K becomes large, yeah, so if K is, say, super constant, then you can see that you don't even get a N to the epsilon lower bound from any of these. So really, I think, beautiful paper, which we will be talking about today. Shestov showed this lower bound. So this again degrades with K as it should, perhaps one can complain about this degrading at 4 to the power K. But and the good thing is it's just N to the one fourths, yeah. Perhaps one would have wanted this one fourths not to be there, but that's asking too much at this point, yeah. Questions is that, alright, so you understand what we are going to do? We will have K parties. Each of them will have a set. They will communicate. They are allowed to use randomness. They have to determine if there is an element in common to all the sets, okay. Okay. So how are we going to prove this? It turns out we will prove this using approximations, yeah. Now for the moment, say the next two slides, there will be no Alice and Bob, okay. That is, there will be or even multiple players. There hasn't been no Alice and Bob for a while, yeah. All in, there's just one bunch of variables, okay. So there's only one domain, X, and think of functions that map this domain to real numbers, okay. These are functions to real numbers. You can say they are functions from zero one strings to real numbers. Now we say that two functions are pretty close, delta close to each other if for every input their value differs by at most delta. So delta is a small number like 0.1, yeah. So if their value differs by at most delta, then we say f and g are close. But here for every input. Now look at the and function. So you have n bits. So the inputs are n bits and the output is one. If all the bits are one or if you're in the plus one, minus one world, if all of them are minus one, the output is to be minus one, otherwise it has to be plus one, okay. Doesn't matter. Now suppose I try to write the and function. Any function can be, we can interpolate a polynomial. If you try to write the and function as a polynomial, yeah, it turns out that if you want to get, okay, so any, yeah, if you want to get close to the and function, that is within one third. So if the actual value is plus one, you should take at least two thirds or you can be one and one third. And if it is minus one, you should be between minus two thirds and minus one and one third. So if any polynomial which approximates the and function so closely must have degree at least square root n, okay. So this was a theorem of Nissan and Segedy and this is actually tight. Actually if you grow this algorithm for search, the fact that it works in square root n iterations means that there is a polynomial of degree square root n, but that's not, okay, doesn't matter. Okay, yeah, all right. So I think this was probably known to you, so I'm going to insult you more by telling you what a polynomial is, okay. So when our inputs are only plus one and minus one, there is no point in having things like x squared, x cubed, et cetera, okay. If the power is odd, you might as well write x one, yeah. And if the power is even, you should not write it at all, okay. So the only polynomials that we'll be interested in will be multi-linear polynomials. That is, there will be no exponents on the variables. And what's a polynomial? A polynomial is like this where you have monomials and each monomial has a coefficient, okay. And we'll be talking about real polynomials, so all these coefficients will be real numbers, okay. Now, instead of writing this product, we might sometimes write z sub s for this product, okay. And again, I said this before and you probably know any function we can always interpolate and build a polynomial which agrees with it on these specific points, okay. So you've been given a discrete set of points and you want to build a polynomial that agrees with the function there, you can interpolate and build this, okay. Now the important thing that we will use is how do you figure out what this coefficient is, okay. Of course, you can interpolate the polynomial and then simplify, get rid of high powers, you get a multi-linear polynomial and then go and inspect what the value of the coefficient of a particular monomial is and that's what we call b sub s. It turns out that multi-linear representation of a function is unique, so any function on this domain has a unique multi-linear polynomial that represents it, okay. But it turns out that this particular coefficient has an interpretation. This coefficient actually measures the correlation between this monomial and the function that it is approximating, okay. So let me just try and explain this a little bit for most of you. What are we doing? We have a function f which is a Boolean function but we are going to turn that Boolean function into a vector because so there is each input, for each input it takes a value, there are 2 to the n inputs, so each function is a vector of length 2 to the n and we are also going to turn the values into plus 1 and minus 1. So all our functions, when we think of them as vectors, have the same length because they only consist of plus 1s and minus 1s and minus 1s, same Euclidean length, okay. Now this particular monomial in this language, you understand this is just a parity function because if you are going to be plugging plus 1 and minus 1 for the z's, when will this monomial be true? If inside of this s there is an odd number of minus 1s. If there is an odd number of minus 1s, this monomial will evaluate to minus 1. If there is an even number of minus 1s, it will evaluate to plus 1. So this is just a parity function. So this is also a function which is z's. It also has the same length and b sub s measures the correlation between your actual function and this. Now you can see that these z sub s's actually form, they are orthogonal to each other, okay. So if you take any two monomials and you take their, evaluate them at all points and take their product and sum that up, you will get 0. So but this particular fact you can just directly verify by inspection. So suppose f of z has a particular representation, you multiply by this monomial. Every other monomial, so the monomial corresponding to z sub s in this expression, that will just become the scalar b s. The others will still have a variable attached to them. When you sum over all possible values, they all will cancel out and the only thing that will survive is b s with a factor 2 to the n, so you divide it by 2 to the n to clear this. So I'm just giving you some fast justification why this might be true, but this is something you can verify, okay. This is what people call Fourier analysis, but we will not need any deep facts about Fourier transforms. The important thing is for you to remember that the coefficient of a particular monomial is this expectation. Take the function, take the monomial, evaluate them and add them over all inputs or average them over all inputs that determines the coefficient. This is the only fact we will need. So questions at this point, okay. So let me go back to the previous slide. There was this statement and the idea is we will be using this, okay. So we are going to somehow work our way through an approximation for the AND function, okay, and use the fact that AND function cannot be approximated by low degree polynomials. I'm going to basically answer these questions, but that will happen only on the board. I don't have any more slides. Yeah, we talked about polynomial, but we want to show lower bounds on the multiparty communication complexity of the set disjointness problem. Set disjointness, I mean, A and D don't appear there, I think. So where is the AND function in set disjointness? So just imagine this function, okay. So this, the inputs here is a, the inputs to this are these. And imagine that you, again, the first column is with, is on player 1's forehead. The second column is on player 2's forehead. If you want, you can think of these matrices one below the other, N of them. And all these first columns are stuck together on player 1's forehead. The second columns are on second player's head and so on. Yeah, doesn't it? So now this whole thing is a function. It's a function on this input. What is it? It is a disjointness function. And of disjointness is, after all, a disjointness on R times N bits. The number of players still stays the same. So this is how, so when we talk about finally an approximation for the AND function, and there are many AND functions in the world, it is this AND function that we will somehow be approximating. I mean, I don't know what, what I'm saying makes sense. But we will somehow use a protocol for disjointness to approximate an AND function. So we should see somewhere an AND function. And I'm trying to suggest that you concentrate on this AND function. Okay? So when you have a disjointness on a universe of size R times N, it has embedded inside it an AND of N things. Okay? Now those things will somehow have to be rigged so that they turn into a polynomial, but that's what we will do. It doesn't matter. You just, I hope you agree that this whole object that I have built is after all computing disjointness on R, N, width. Okay? There is no protocol. The function that we are trying to compute is this function. Okay? So there was another question. Yeah, where is the, where is the polynomial? Where is the polynomial? So just leave this aside for a moment. Suppose you have, there is some, think of P as some black box. It takes as inputs Z1 to ZN. Each one is a plus one or a minus one. And then it spits out some real number. Now any such object, this is after all a function from zero plus one minus one to the power N to reals. Okay? So any such function can be turned into a polynomial. You just interpolate it as a, it's a function on plus one minus one to the N to real numbers. So there is a corresponding polynomial. Okay? So now we will, so think of P as some process. It might have internal randomness. It might have some nonsense. In the end, you take a particular value. If it's a randomized object and it gives various values for various random settings, you just take the average value and think of that as the value of this process for a particular input. Okay? So whenever you have a process which gives out some value or with which you can associate a particular value, it corresponds to a polynomial. Okay? Now which process? Okay? So I'm going to rig up a process out of this. So imagine you have this AND. You have these disjointness functions. Okay? So this is my process P. Let me just explain what the sampler does. Okay? This mu plus one is a distribution on inputs. So mu plus one is a distribution on such matrices. Okay? And mu minus one is also distribution on such matrices except that mu plus one is a distribution supported on those matrices which give the disjointness function, the value, plus one. That means they have at least one row of ones, all ones. Okay? So consider all those matrices which have at least one row of plus one. On them there will be a distribution and that distribution I'm going to call mu plus one. The exact nature of that distribution I'll tell you later. Okay? Similarly there are matrices which have no all ones row. On them there will be a distribution and I'll call that mu minus one. Okay? Now having said that let's assume that there are such distributions, let's fix them. Okay? Now let's look at the sampler. What the sampler does is when it receives a plus one, notice that in the end in the business of computing AND on N bits and those N bits are Z1 to ZN. Okay? But when it receives the input plus one, it goes and samples an input from here. And when it receives a minus one, the sampler samples an input like this. So now basically the effect of this disjointness is cancelled out by the actions of this sample because when you feed in a plus one, this one is going to give an input from mu plus one and then this disjointness is going to obviously give the value plus one. Okay? So this just, I mean it looks like pointless to have done all this. Okay? But let's view the computation of an AND of Z1 to ZN as being mediated by this sort of a disjointness computation. So now what does this bias? So this is the process P that I want to talk about. Okay? This process P since it's, okay, so now we agreed that this particular thing here was after all this big disjointness problem. Okay? So we can replace this by a protocol. Okay? So now let's see. This part, we have this protocol which takes, so the sampler produces. Now you agree that this object is actually a good approximation for the AND function. This object was exactly equal to the AND function. Yeah? Because it was an AND of these disjointnesses but these used to cancel each other out. So this was an AND of Z1 to ZN. But this particular thing is after all a disjointness on r times n bits. So if I replace this part by a protocol, yeah? How the protocol works, who gets what part of the input let's not worry about it right now. If this is replaced by a protocol, then this object now becomes an approximation for the AND function. So we found and if this particular object now I think of as my process and interpolate it for Z1 to ZN, I get a polynomial in Z1 to ZN. So let's make that precise. The protocol used to be correct with say probability 1 minus epsilon. Okay? So when the AND needed the value 1, with probability 1 minus epsilon, this protocol would give the value 1. With probability epsilon, it would give the value minus 1. So actually if you take the expectation, it would be at least 1 minus 2 epsilon. Okay? So if the original protocol was an epsilon error protocol, then this object, this process which I am calling a process is a 2 epsilon approximation for the AND function. This one we can interpolate, yeah? And now what is happening is when I mean that will be the polynomial. Now we need to understand what happened to its error, yeah? Now Madhu has already pointed out that we have kept the error under control because the original protocol was a good approximation for the AND function. We also need to keep its degree under control. And there was a question which he said, what is its degree? Okay? Yeah. Now it turns out that if you just interpolate any particular polynomial, any function, you will have a polynomial with all sorts of degrees. Okay? So I am going to make a strange sort of symbol. It turns out that having disjoinness is here acts like what you might call a band pass filter. It erases high degree monomials. So we will argue that because this computation has been mediated by disjoinnesses inside and this protocol is a protocol of low communication, the high degree monomials have been wiped out. Okay? So in fact, when you interpolate this, there will be some coefficients on the high degree monomials but those coefficients will be so small that we could neglect them and we will get an honest low degree polynomial for the AND function. Okay? So that is what we have to do next. So let me just write down the statement. Yeah. Yeah. So we will have to choose these distributions and the fact that they are passing through the disjoinness is what will make the high degree monomials vanish. No, no, it's much simpler. It is... Yeah, I will just tell you. Let me write down what's going on. Remember BS? It was the coefficient of... So we would like to know what the coefficient of Z sub S will be when we interpolate this into a polynomial. Yeah. And we also had a formula for computing Z sub S in terms of the correlation. Yeah, there it is. This used to be the expectation of this process which after all is... And output of this sampler on Z i is Y i but this is just saying the same cancellation that I was talking about. Disjoinness value on Y i is the same as Z i. Okay? So we just by routine manipulation we get this. So this pi is a protocol, is the output of the protocol. Now what we would like to say is that if this protocol has low communication complexity then its abilities to correlate well with a product of disjoinness is going to be small. Again, a protocol with low communication cannot correlate well with product of several disjoinances. Now why would you... I mean, even imagine that such a theorem might be true. We know that if a function can only make some small amount of error on... Sorry, some circuit let's say makes a small amount of error for computing some function. Then if you take a parity of several of them it amplifies the hardness. So that is going for us here. This you can think of as an implementation of an XOR lemma in the midst of the proof. Now here this is a protocol of low complexity but we will just replace this by a cylinder intersection because after all this protocol is a sum of 2 to the c cylinder intersection. If we can show that any one cylinder intersection cannot have too much correlation then 2 to the c of them can have only 2 to the c times that correlation and that will help us. So in the end the lemma that we need to prove will be just that a single cylinder intersection. One cylinder intersection cannot correlate well with parity of disjointness. So actually I lied. If you just read the lemma then we will see what use it is. So this mu plus and mu minus are the same thing. So we will find some mu plus and mu minus and instead of the pi there I have just kept one cylinder intersection and I am... The key lemma that is proved and we will not have the time to go into its proof will be that this particular expectation is bounded where is mu used in this? So these X i's are the outputs of the sampler which I probably used to call y i here. So once again this expectation is over what? So our formula for computing the coefficient had expectation taken over all values of z. z1 takes value plus 1 minus 1 and so on. So when z1 takes a value plus 1, x1 takes a value from mu plus and when z1 takes the value minus 1, x1 takes the value from mu minus independently and that is what you plug in into this and if we can keep this expectation down we would have kept this coefficient. So then what do we get? So when we... let's take our process which was there, write it as a polynomial. It had various coefficients. So it had summation bs. Now let us look at the contribution. I think this is standard calculation. So how many monomials of degree i are there and choose i because those subsets this and for each of them the coefficient, let me just call it 2 to the k over... let us look at its contributions from only the high degree terms. The high degree coefficients in the polynomial themselves are bounded by this. There are at most these many high degree coefficients and this is per cylinder. So there are these many cylinders so for each of them we get this. But we know that the sum of these a kis in absolute value is bounded by this. So just believe me the error will get bounded by 2 to the power c and if you just... let us... so Nissan and Segedi says that if you have polynomials of degree square root d then you cannot approximate this. So let's choose d to be the degree that Nissan and Segedi forbid us from using for approximating an ant function. And let us choose r to be... that might have been an e, you can stick in a largeish constant here. Just for this one calculation I will do. So just look at what this quantity becomes for this choice of d and r. Well d gives you a square root n, r gives you another square root n that takes care of this n, the 2 to the k has been taken care of, there is an a. So now... so if this quantity is very small let's say less than one tenths then what will we do? We have our process, we interpolate, we take its polynomials, we delete the high degree terms and we get a polynomial which approximates the ant function of degree square root n and we will get a contradiction. So to avoid that contradiction it must be that this c is so large that it doesn't allow this number to be less than one tenths. So this quantity let us say must be greater than one tenths and let us just do this. So yeah but this looks better than what I had said except that my new n I am now doing a disjoin is not on n but on r times n so which is capital N which is the size of the disjoin is problem that I am talking about is... and if you put all these things in terms of capital N you will get, I hope, what did I say one fourths, something like that. Just check, if it's wrong we will fix it. So now how are we doing? So basically that's all I have time for and I have not told you the main thing. So that is what are these distributions and how do we prove this particular lemma. So I will not tell you how this lemma is proved. It follows partly what Baba Nisan and Segedi did for showing lower bounds for parity or the generalized inner product in the multi-party setting and then there are very subtle calculations very elegantly done. I will just tell you what the distribution is. So the distribution mu is the following. The first column is completely random and the remaining columns are chosen such that there is precisely one all ones. So choose a matrix here of dimension r times k minus 1 which has precisely one all ones row and then to the first player give a random input on the head. Now what's the probability that this will lead to disjoinness? It all depends on what this bit turns out to be. If this bit turns out to be 0 then they are disjoint. If this bit turns out to be 1 then they intersect. So with probability half it is this. Mu 0 is mu conditioned on sorry mu plus 1 is mu conditioned on this bit being 1 and mu minus 1 is mu conditioned on this bit being 0. So under these distributions we will be able to prove that correlation lemma which is some sort of an XOR and I will stop here. I had the reference to the paper somewhere. I will look it up and I will be happy to talk to anybody who wants more of this. Thank you.