 So, I'll be talking about EF games or Aaron Fritz, I'm not very sure how that's pronounced, but it's probably Aaron Fawcage games. Yeah, games are a very useful technique in first order logic and they can be used to understand the expressive power of, you know, well, any logic. We need to define an appropriate game and they can be useful to us to understand the expressive power of these logics. So, before that I'd like to introduce the notion of, so, Sir is already covered the syntax of first order logic. In connection with this syntax, I would like to introduce the notion of what is called the quantifier rank of a formula or the nesting depth or the quantifier depth of a formula. These are all equivalent notions. So, for any formula that you have from the syntax itself, you can see that you can write down the formula as a tree. So, for example, if you have a formula, say, X is X, let's say the vocabulary is, say, R. Just, it's a binary predicate. So, we say, let's say there exists X, R of X, X and for all Y, R of X, Y or negation R, Y, Y. I hope this is visible at the back. So, yeah, suppose you have a formula of this kind, then you can just write it down as a tree as, you know, there exists X and you have an AND here. So, you just write down that and that has two arguments, which is R of X, X and this, the other argument which can itself be, again, recursively written down as a tree, which is for all Y and then that's an OR and then that's, say, R of X, Y and then there is a negation and then there is R of Y, Y. So, every formula, so this is just an example, but you can see that any first order formula can be written down as a tree, which is called the parse tree of the formula. Now, the, so all for, you know, we just look at each path from the root to the leaf and we find out the number of quantifiers that are appearing along that path, okay, and the maximum number of quantifiers that along, that appear along any path from the root to the leaf is what is called the quantifier depth of the formula or the nesting depth of the formula or the quantifier rank of the formula. So, for example, here, this path has just one quantifier, whereas this path has two and that path is two, so the maximum of all of these is two. Therefore, the quantifier depth or the quantifier rank of this formula is two. Yeah, so this is just a, but, you know, this notion will be useful later on. I shall introduce this, the notion of the EF game between two structures and show how a game of n moves has a very close connection to formula of quantifier rank n, okay. So, the EF game is a game that is played between two structures, okay. So, let us say, let us for convenience, let us just restrict ourselves to structures which are graphs, okay. Let us say in particular colored graphs to make, to explain to, for the ease of exposition. So, let us say, so our vocabulary here would be r, which is a binary predicate, which is a parity two, and let, and say p, which is a unity predicate, which is a parity one. So, any structure as, you know, any, any first order structure has a universe of elements and then it has an interpretation to each of these predicates. The structure can be interpreted as, you know, all the elements of the structure can be interpreted as nodes and the r relation will be specifying directed edges across between these vertices and p will be like coloring every node with one of two colors, okay. So, yeah, so, so the structures of the, the sigma structures here are all colored graphs and now the game, the EF game is, is played between two graphs, okay, two colored graphs. So, you have a graph G1 and you have a graph G2 and the game is played between these two structures. So, the game consists of two players, one is called a spoiler and the other is called a duplicator. I think there are different names for the spoiler and the duplicator. I think it can be called Sujin Singh and Dojin Singh or, or, or something, or something else, Sam and whatever. So, there are different, different, there are some, you know, different names given to this, but yeah, we shall just refer to them as spoiler and duplicator. So, the game is played in, you know, the game is played in rounds. So, in any round, the spoiler picks up any one of these structures, okay, any one of these graphs and picks up a node from that graph in response. So, in response in the same round, the duplicator picks up the other structure and he picks up some node of, or the, picks up the other graph and he picks up a node of the other graph, but trying to ensure that this newly picked up node bears the same kind of relationships, relationship to the previously selected nodes as the one that the spoiler took, okay. So, so, so, to give an example, so, let us say you have a graph which is that, okay, and this is say colored. So, you know, if P of X is true, then that's, you can say that's one color. If P of X is false, then it's a different color. Let us say if P of X is true, then it is blue. And if, if P of X is false, then it is green. So, P of X equal to true is blue and is equal to false is say green. So, let us say you have this blue, green and green. And you have another graph which is, let us say, green and blue and, okay. So, so, in the, in the, in the first round of the game, the spoiler picks up one of these structures. Let's say he picks up this one and let's say he picks up this particular node. Then the duplicator picks up the other structure and he's, he, he will respond with a node from this structure. But this response will try to ensure that the node that is picked up first of all has the same color as the node that the spoiler picked up, okay. And since this is the first round of the game, there is, there has been no previously picked up nodes. So, all that he needs to ensure in this first round is that the color of the picked up node is the same as the color of this. So, you can just pick up any one of these nodes, okay. Let's say he picks up this. Now, in the second round, so, so, you know, now suppose, so it's possible that of course in this particular example, of course it is, it is the case that for the move that the spoiler has made, the duplicator has been able to make a move which is indeed satisfies the fact that, you know, it is of, it is of green color and that matches the color of the node that is picked up. If it was a structure like this where it was all blue, then the duplicator has no response. Yeah, so the duplicator has, in this, in this particular case, the duplicator will not be able to respond with a node which satisfies the constraint that, you know, it's of the same color. If the duplicator is able to respond in the manner that I just specified, then the duplicator is said to have won this round of the game. And the spoiler has lost this round of the game. And the duplicator is not able to respond to this manner. Then the duplicator loses in this round of the game and the spoiler wins in that round of the game. So it's a 0-1 thing, so either the duplicator wins or the spoiler wins in any round of the game, okay. Now, let's get back to this thing. So, let's say it was green and this was green as well. So, in this round, of course, the spoiler has lost and the duplicator has won by making this choice, okay. This is the game then proceeds to the next round and it starts afresh. Again, this spoiler has the freedom to choose any one of these structures and it picks up a node from the structure. So let us say he picks up this node, okay. This is, let's say this is G2, so this is B1 and that's A1. And now the spoiler in the second round picks up the node called A2, okay. And now the duplicator is supposed to choose the other structure and he would like to choose and he is supposed to choose a node, which of course has the same color as this selected node, but not just that, it also, he must also pick up the node in such a manner that it bears the same kind of relationship to the previously selected nodes as this guy does, okay. So, of course, the duplicator has no choice here, he has to pick up this node. He cannot pick up this one, although this is a green node, he could have picked up this green node, okay. But if he had picked up this one, the constraint, so apart from the fact that, you know, there is an edge between these two nodes, okay. And there is no edge, of course. Yeah, I think this hall is under construction. So, of course, you know, the choice of the node is such that of course it respects the color thing, but it also respects the fact, it also respects the qualities between these vertices. So, for example, spoiler could have picked up this node in the second structure. In the second round, he could have picked up this node, okay, in which case the duplicator is supposed to pick up the same node, okay. So, the constraints are that in any round, whatever node the spoiler picks up, the duplicator chooses a node from the other structure, which bears the same relationships to the previously selected nodes, which therefore includes equality relations as well, okay. So, in particular, if he has chosen two different nodes, the duplicator must choose a different node. If he has chosen the same node, the duplicator must choose the same node, okay. So, therefore, he cannot choose this node, and let us say, and he cannot choose this, the duplicator cannot choose this because there is a different color, and therefore, he can choose only this. So, the color requirements are matched, but there is a problem now. 8, and let's say, so this is B2. Now, A2 has a forward edge to A1, whereas B1 or B2 has a backward edge from B1. So, this is really not the same relation as ones that are there here. So, we can see that the duplicator, whatever choice he makes, he is not able to make the choice satisfy the same relationships that are there here, in here. So, the duplicator has no move, you know, there is no choice for the duplicator. There is no move for the duplicator by which he is able to win this round. So, the duplicator actually loses this second round, okay. Likewise, we can take an example of a larger graph, you know, where the duplicator can continue beyond two steps and so on. So, therefore, you know, if I were to define this, so in every round, there is a, the spoiler either wins or the duplicator wins, okay. And then the game is played for, you know, n rounds. If at any point in time, the spoiler has won the round, then the game stops. The game is, the game is ended and the spoiler is set to have won the game, okay. If it is a game of n moves, and at any point in time, at any particular round, the spoiler has won that particular round and the spoiler has won the whole game, okay. But if the duplicator has won that round, he has only won that round, okay. For him to win the game, he needs to ensure his success in all the rounds of the game, okay. So, the duplicator wins the game. So, the duplicator wins the game if and only if he is able to ensure his success in all rounds, okay. If and only if that means, if and only if at the end of n rounds, he has won. So, you know, so that's the notion of, you know, a game between two structures and the notion of the duplicator winning a game between two structures. Now, the duplicator is, if the duplicator is able to ensure his success in n rounds, regardless of the moves of the spoiler, okay, then the duplicator set to have a winning strategy in this game. So, yeah, like say, so we'll look at an example of two structures. Of course, I have given an example of two structures, in which the duplicator does not have a winning strategy in the two round game between these two structures because there is a game, there is a choice of moves for the spoiler for which the duplicator has no answer, for which the duplicator loses, okay. So, here is a game in which the spoiler has, the duplicator has no winning strategy and the absence of the winning strategy for the duplicator means that means a winning strategy for the spoiler. So, the spoiler has a winning strategy in this game. Okay, but let's look at an example of, you know, but whereas in the one round game, in the one round game, the duplicator has a winning strategy. You know, just, you just need to ensure the colors match. So, we select, the spoiler selects green here, he selects green, selects blue here, he selects blue and vice versa, okay. The fact, the notation for, I mean, if the duplicator is able to have a winning strategy in the n round game between these two structures, then it is denoted as G1 and G2, okay. So, this is saying that, you know, this duplicator has a winning strategy and you can see that, yeah, this also means that these two structures are partially isomorphic, okay. So, you know, at the end of any two rounds, at the end of any number of rounds, the duplicator has to ensure that the structure that is there in, you know, the set of nodes that have been selected in any one graph is isomorphic to the set of nodes that are selected to, is isomorphic to the structure that is generated in the other graph. So, therefore, you know, the G1 and G2 represents the fact that these two are partially isomorphic. Let me take another example of two structures which are, so let us say I have two, let's say I have two linear orders, okay. So, yeah, so I have two finite linear orders, okay, and we can, I will try to give a hint or give an intuition of how by ensuring that these two linear orders are of sufficiently large size, you can ensure that there is a, you know, these two are, you can, the duplicator has a winning strategy in an n round game between the two, okay. So, so the strategy would be for the duplicator, of course, if the spoiler selects an endpoint, okay, so this is a linear order, so these elements are ordered in this, in this fashion. If the spoiler selects an endpoint, of course, in the one round game, the duplicator can select anything, but in a two round game, that will be a problem because suppose for example, the spoiler chose this endpoint and the duplicator chose something else which is not the endpoint, okay. Let's, let's say some other node here, then the spoiler in the second round will choose just the previous node, and then the duplicator will be supposed to respond with a node which is just before the node that is selected here, but then there is no, there is no such, okay. So, it is, it is only mandatory that in a two round game, if the duplicator has to win, then he better select this node. Likewise, you can argue for the end, the other endpoint, okay. Here is one strategy for the duplicator, in that this, if it is an end round game, I don't want to duplicate. So, okay, so the strategy would be, so if it's an end round game, then here is one strategy where the duplicator, so this initial segment of size n, the duplicator will try to make his moves in such a way that if the spoiler chooses from this initial segment, the duplicator will also choose from that, you know, because two initial segments are isomorphic, the two initial segments look the same of size n, then whatever choice the spoiler makes in any one of these, the duplicator can respond with the corresponding choice in the other structure, okay. Likewise here, okay. So, so this would be a strategy for the duplicator. If the spoiler picks up from the initial segment, the end segment of the first structure, then he also chooses from the initial segment of the other structure, which is the corresponding segment. If it is anything in between, okay, then he also chooses something in between, okay. If it, now, if it is a, if this game goes for more than one round, so this is following the strategy. If this, if at the beginning, the first round, the duplicator chooses, the spoiler chooses from this initial end segment, the duplicator chooses from the corresponding node in the other end segment, if he chooses from here, he chooses from here, if he chooses anything in between, the duplicator also chooses anything in between, okay. Now, we want to somehow use this argument recursively to ensure the winning strategy for, and, and note that this kind of, this strategy for the duplicator ensures, ensures the success in the one round game between the two structures, okay. So, we want to recursively use this argument to get a strategy for the end round game, okay. So, the idea would be, given this choice, let us say this is the second round, given this choice and some choice here, this strategy would be to do the second round, okay. So, that, again, that means, so, well, this could be a large one. So, let me say that, something here, that's an initial end segment, and there's something here, and there's something there. The strategy would be to try and replicate this, given, by considering this as an initial, as, as a segment, and this as a segment, okay. So, the same argument that was used here, the same, the strategy that was used here, will be replicated in the, in, in this reduced path that is there between these two structures, or this reduced linear order, okay. So, here, again, if he chooses from this first initial end segment, he chooses from here, if he chooses this initial, from this initial, from this end segment here, the idea would be to choose from this end segment, and these two are, of course, isomorphic. And if there is anything in between, the duplicator would want to choose from anything in between, okay. Now, this is a reduced structure, and this is also a reduced structure, and the same strategy again. So, if this is, if he chooses from this end segment, then this guy will choose from this end segment, else he chooses anything in between, okay. So, you can see that, and likewise we ensured it on the other side also. That means, so this was our first thing, this is a1, and say, this is b1, and this is a2, and that's b2, and let's say that's a3. We know that this kind of strategy is going to ensure success, just that we need it to be long enough so that, you know, so, so that these things don't overlap. It's a sufficient condition, of course, so these things do not overlap. You know, so if we can ensure this on the other side also. So, so far we can see that, you know, the size of the structure required here is, so this is n, and that's n, and this, yeah. So, so it's like this. So, this whole structure you start in the middle, so you say, that's the left segment and the right segment. The left segment itself, you want to ensure it to be long enough, that has two other segments, and then this segment, so this is a1, and that's let's say a2, and then that's a3. We would want the length of a2 to be, let us say, if we go one step further, so that's again a3 here, then, you know, we would want it to be, you know, n again, then there's an a4 here, so it's, that's a4, okay. So, we would want a3, I mean, this particular length to be, say, 2n, greater than 2n, and likewise, you know, if we were to repeat the same argument everywhere, this would, we would want it to be greater than 2n, that would want to be greater than 2n, this will ensure a strategy for this duplicator. And therefore, if these two must be greater than 2n, then this is greater than 4n, this is greater than 4n, that's greater than 8n, okay. In general, if you keep going down, if it is a tree of height, say, h, so, you know, whatever, and so on, it's a height h, this is the previous one will require 2n size, and all that, all the ones at that same level require, you know, size of 2n, then the one above that will require size of 4 and so on. So, if it is a height h, say, h minus 1th level, it's 2 to the power 1, and the h minus 2th level is 2 to the power 2. Up here, it will be 4 plus 4, which is 8, which is h minus 3 will be 2 to the power 3, and up there and so on. So, that at h minus h, which is 0, it will be 2 to the power 2 to the power, well, it's 2n, 2n, I think, 2 to the power n, is that right? So, it's 2n, up there, it is going to be 4n, which is, yeah, I think that's fine, fine. So, that means, if we can ensure this path to be at least as large as 2n, 2 to the power n, both of these paths to be at least as large as 2 to the power n, then you can get a winning strategy for the duplicator by doing the following. If it is this initial segment, then it's an initial segment here, and vice versa, and vice versa there. If it is something in the middle, then if it is sufficiently far away from here, it is at a distance of 2 to the power h minus 1 from here, as 2 to the power h minus 1 and 2 to the power h minus 1 from there, then you leave out the same kind of segment here, and you can choose any node here, and you just recursively repeat this argument. So, well, I don't know whether there was rigorous enough, but I hope I've tried to convey an intuition of why it is a case that if these two linear orders were large enough, then there would be a winning strategy between the two structures. Another example that I can give is that of, let us say you have one cycle, and you have two cycles. So, the claim is that if these two cycles, so let's say this is G1, and this is G1 and G1 again, but this whole structure is G2. G2 is two copies of G1 put together. The claim is that if G1 is large enough as compared to N, then again the duplicator will have a winning strategy between these two. And that is, I think, can be seen again as the predicate here is just R or E. It's just the binary predicate here. So, it's a cycle. So, the only predicate is edge-to-edge predicate. There are no unitary predicates. So, let's say it's, whatever, it's undirected. It doesn't matter. So, I think the fact is that the fact, so let us say this, the cycles of size greater than say 2 to the power N. And you know, these two are again greater than 2 to the power N, 2 to the power N. Then the fact is that in N moves, this structure cannot be grasped in its entirety. In N moves, you can see only a part of the structure. So, and that part, you can always find it here also. For example, any part here, at the end of N moves, this, the N nodes that are selected from here will form a collection of disjointed parts or points. So, it is never the case that this whole structure can be grasped. It is only the case that in N moves, you will only see some kind of collections of parts and disjoint collections of parts and points. And since these two are large enough, you can always replicate this particular, you can always replicate this choice here. So, but that's only, you know, but that's only if these two graphs are large enough. So, for example, if they were small, say it's, let's say it's N is, or let's say it's just a three-sized graph and these two are three-sized graphs. Then in, let's say four moves, the difference between these two will be detected, okay? Because the spoiler will choose all the elements from here for which the duplicator will have to exhaust all the elements here. And then spoiler will choose one more element here and then there's a problem, right? So, yeah, so I think this, so very roughly I can tell you, you know, you can see that with this large enough size, whatever the winning strategy for the duplicator in this, in the end-round game between the two structures. Now, this example will be useful when I tell you the following theorem. The EF theorem, coming back to EF games thing, so the EF theorem says that the following are equivalent. One, you know, okay, the EF theorem says that given structures, or let us say for our, since let's say graphs, given graphs A and B, the following are equivalent. A and B and the fact that A and B satisfy exactly the same set of sentences of quantifier rank less than equal to n. So, it says that if these two structures are such that the duplicator has a winning strategy in the end-round game between the two structures, then no formula of quantifier rank n can distinguish these two structures, okay? So, and therefore it says that, and therefore it says that if it is the case that A and B do not satisfy exactly the same set of sentences of quantifier rank less than equal to n. That means there is a distinguishing formula, then the spoiler has a winning strategy in this game, okay? And now we can see, so you know, and immediately, you know, you can see this immediately by the examples that we just considered. Like say for example, the first thing that we looked at was, you know, or let's say, let's take this itself. If this was of size 3 and these two are of size 3 again, and I'm looking at the four-round game, okay? I can express this whole structure as there exists x1, x2, x3 such that x1 not equal to x2 and x3 not equal to x2 not equal to x3 and x1 not equal to x3. And this says that there are at least three elements and I'll say that for all y, y is one of the xis, which means that every y is one of these. That means the two put together say that there is exactly three elements in the structure and then you just encode the relation. So we'll just say that e of x1, x2 and negation of e of x2, x1 and whatever and e of x2, x3 dot, dot, dot e of x2, x3 and negation of e of x3, x2 and so on, okay? So this formula you can see is such that this structure will satisfy this formula and any structure which satisfies this formula will have exactly three nodes which are connected in this fashion. In other words, this graph of size 3 with the cycle of size 3 is the only model of this formula up to isomorphism, okay? But, and this is of quantifier rank, in fact this is just quantifier rank 2. You can see the, so quantifier rank 4, sorry, quantifier rank 4 and you can clearly see that so as I just said the only model of this formula is this graph. Therefore this graph is not a model of this formula, five minutes left. So therefore this graph is not a model of this formula and that's a distinguishing, right? So, yeah. So indeed it's the case that if a and b do not satisfy the same set of sentences of quantifier rank as in it, then there is a distinguishing. There is a game for the, there is a strategy for the spoiler. Now, this theorem, of course I will not go into the proof of this, but I shall show that, show some applications of this theorem in understanding the expressive power of first-order logic. Okay, so this is of course for first-order logic. So, this is all for given graphs a and b and so this is all for fo. Yeah, I think I have enough time to just cover an inexpressibility proof, okay? I think I just rubbed that out, let me just bring that back, okay? I have one graph which is g1 and I have two copies of the same graph that form g2. Now, I want to say that the following property is not expressible in first-order logic. The property that, the property which is the collection of only cycles, okay? The property can be seen as a set of structures and I am claiming that this, that set of structures which is exactly the set of all cycles is inexpressible in first-order logic, okay? So, the property p is cycles, graphs which are cycles, okay? This is inexpressible in first-order logic, okay? Now, to show this we shall use this theorem, okay? And, you know, yeah, so the idea would be the following. If you take, suppose this was indeed expressible in first-order logic, okay? Then it would have a certain quantifier rank. Suppose this was indeed expressible in first-order logic, then it would have a certain quantifier rank, okay? Now, if I can come up with two structures a and b such that they are n equivalent, that means there is a winning strategy for the duplicator in the end-round game, okay? Then it would imply that, of course, you know, a and b agree on all sentences of quantifier rank less than or equal to n and in particular on that formula which expresses this, this thing. Suppose this was, suppose p was expressible by a FO formula, FO sentence, say 5, okay? Now, so therefore, you know, if I have two structures which are n equivalent, then they will agree on all sentences of quantifier rank less than or equal to n and in particular on 5, okay? Now, the idea would be to try and get a b such that b is outside p, okay? So, if I can get an, if I can get an a and a b such that a is inside p and b is not inside p, but sentence p of rank n, okay? So, if I can get two structures a and b such that one is inside p and the other is not inside p, but a and b are n equivalent, then we will have a contradiction. That is because this will imply that this is true and this is true will imply that, this will imply that a satisfies 5 if and only if b satisfies 5, but since a is in p and I am saying that p is expressible by 5, so that would mean that a satisfies 5 is true and that would imply that b satisfies 5 is true, which would imply because 5 expresses, 5 captures p, it would imply that b satisfies b belongs to p, but then that is a contradiction, okay? So, now, since I do not know, you know, if p was indeed expressible by a first order sentence, since I do not know what rank it could be, if I can ensure that I can get this a and b for each n, okay? Then it is definitely the case that this p cannot be expressed by a first order sentence, because if it is expressible by a first order sentence by very definition, it must have a, you know, a sentence by definition is a finite length string and therefore it will have a finite quantifier rank and therefore for each n, if I have been able to ensure this thing, I know that 5 cannot be first order expressible, okay? So, that would be the, so that is how this theorem helps us in getting a way of showing inexpressibility proofs in first order logic. So, now, to show that this property is not expressible in first order logic, I just need to do this, okay? So, the idea would be the following, I will just take, yeah, exactly. Earlier, we had seen that if these two were sufficiently large, then we could have a winning strategy for the spoiler, for the duplicator. So, in particular, I specified that if this is of size greater than 2 to the power n and therefore this is of size whatever, greater than 4 to the power n, then you know these two will be n equivalent. So, the idea would be for each n given n, choose a to be the cycle of length 2 to the power n and b to be two copies of a, b to be, well, b to be a disjoint unit a, disjoint unit a, okay? As argued earlier from earlier argument, from earlier a is n equivalent to b, but now this is very clear. This a is in p, whereas b, although it has two cycles, it itself is not a cycle, therefore it is not in p. So, therefore this is true and that shows the term. That shows that phi cannot be of quantifier rank. This phi, if it already existed, cannot be of quantifier rank n, but then, since I have done it for every n, I am done. So, likewise I pipe, what I can do? Likewise, it is also the case that the following property of reachability is inexplicable in first-order logic. So, p is, in fact, yeah, exactly. In fact, p is the set of all connected graphs. This is also not inexplicable in first-order logic. And again, the idea would be to choose, you know, the idea would be to come up with this kind of thing. And I think the same example would work. That is, given n, I would choose a to be this one, which is a connected graph. And b to be this one, which is not a connected graph. I know that a n equal to b from my argument. I know that this belongs to p because, well, this is p11. So, I choose a to be whatever here. So, if I choose, so I know that this a will belong to p and b will not belong to p in the first-order. So, this property is also not inexplicable in first-order logic. And so, in other words, and therefore, I think the property of q, which is given a graph, well, the property which is GAB, which is where a and b are connected in G, this property, this set is also first-order inexplicable. In other words, so we can reason out from here only. And this essentially means that reachability is not explicable in first-order logic. The checking of given two nodes a and b, whether this is a first-order sentence, which will exactly capture this set, this is not first-order definable. And that motivates, but reachability is one of the most easiest things to check. Algorithmically, if you have a finite graph, it's one of the most easiest things to check using a breadth-first search or a depth-first search. So, whereas first-order logic is unable to express even that. So, there are, that will motivate extensions of first-order logic by additional operators, which indeed enrich the logic to be able to express such properties. Those are, you know, extending first-order logic with fixed-point operators and so on. I think that is something which Professor Fokyan will cover. So, I think I'm at the end of this thing. So, just to wrap up, the idea of the whole presentation was to introduce you to the notion of EF games. And to give you examples of how you can play games between two structures, which will ensure winning strategies for the duplicator, and how the winning strategy for a duplicator has a very close connection to logic, which is, you know, satisfaction of, has a close connection to the quantifier rank of sentences, and how it is the case that this theorem is, enables us to get some inexplicability proofs in first-order logic. Yeah, I think with that.