So I'm going to talk about a new topic in number theory. So I would like to kind of end these series of lectures by talking about something that brings together a bunch of things we discussed before, but I have no idea what, if any, topic might do that. So instead, I'm just going to talk about one more thing that seems interesting and is maybe the kind of the most interesting from a purely number theoretic perspective. So I'm going to speak about my joint work with Mark Shusterman. Shusterman on a series of old conjectures in number theory on the twin primes conjecture, chalice conjecture, quadratic Bateman-Horn. And I want to begin by talking about chalice conjecture, which is a conjecture about the Mobius function, which is defined for, well, let's say for integers as minus 1 to the r, if n is, well, maybe plus or minus, a product of r distinct primes for p1, pr prime in distinct, and it's 0 otherwise. So if n cannot be written in that form, which we know from the unique factorization theorem, is equivalent to n having some prime square devices and being not square free. So it's roughly minus 1 raised to the number of prime factors except that for many purposes, it's convenient to kind of zero out all the numbers that have repeated prime factor rather than just counting at it's like multiple prime factors. And so the conjecture is if you have d1 through dk integers that are distinct, if you sum over natural numbers less than x, Mobius of n plus d1, product up to Mobius of n plus dk divided by x, this to converge, the x goes to infinity to 0. So this statement is a reflection of the philosophy that the Mobius function should behave like a random function, or at least its sign should behave like a random sign, like a coin flip independently for each number. Because when Mobius is 0 versus non-zero, it's not random. It's like it's a periodic or a series of periodic phenomena with period 4 and 9 and 25 and so on. But the sign part is totally random. And so if we determine the sign of each of these values independently, their product would also behave like a coin flip. And so the law of large numbers would indeed say that this limit would be true. And so this conjecture is not known. This is unknown for k greater than 1. The k equals 1 version is basically equivalent to the prime number theorem, except there is a version of it that's known with additional averaging in x. So if you average the left side over x equals to 1, 2, 4 up to a power of 2, and then take the limit as the power of 2 grows and grows, then you would get conversions to 0. This is for k equals 2 by work of tau, and for k odd by work of tau and teraevinin, which is all building on the breakthrough, matomachy. And so this is a conjecture that's focusing on the randomness of the Mobius function in a kind of additive way. So the Mobius function is a multiplicative function. It behaves nice when numbers multiply. And so we're instead plugging in sums of numbers and seeing what we get. Or another way of describing it is it's a conjecture of the local randomness of the Mobius function. So in this conjecture, and it's going to be typically much larger than d1 through dk, so we're looking at very nearby numbers and saying that the Mobius should behave independently among those. And if you knew this conjecture, you would get this kind of local limit of the Mobius function. Behaves randomly, or maybe a slight variant of the conjecture. But Chala actually made a more general conjecture than this, which is not kind of purely additive, but is a hybrid of addition and multiplication. So a polynomial. So the polynomial Chala conjecture would be that f is an integer polynomial that is non-constant, then the limit of x goes to infinity. The sum of natural numbers less than x Mobius of f of n should be 0. So again, if Mobius were random, then this sum would certainly cancel in x by the law of large numbers. And so the conjecture is that Mobius is behaving sufficiently like a random function. And there's something a little bit tricky here, because if this polynomial f has a repeated prime factor, as a polynomial of integers, then this sum is behaving non-randomly, but it's behaving non-randomly because all the terms are almost all the terms are 0, because they all have a square factor. And so the sum will cancel also in the non-random case. And so this polynomial version is much harder, even with additional averaging, because you can't take advantage of the local and additive structure of the sum and play it off against the Mobius structure, the multiplicative structure of Mobius. It's harder to get track of any kind of structure. And so it's not known for k is equal to 1, and it's essentially a version of Dirichlet's theorem on primes and arithmetic proportions, because the polynomial of degree 1 is just summing over an arithmetic primes, and because you can relate these Mobius sums. The sum is over primes. Oh, yes, sorry, I don't understand. Yes, degree k. So let's consider an analog for fq of t. And so here, for the first time, is we're going to be really important that fq is a general finite field and may not just be the prime field at z minus p. And so we first need to define the Mobius function, and we'll define it in the same way. Mobius of f will equal minus 1 to the r if f is equal to alpha times pi 1 to pi r for alpha unit in fq, pi 1 through pi r, distinct primes, distinct monarchy irreducible polynomials, and 0 otherwise. And here, we had a polynomial in z of x. So the coefficients should now be polynomials in fq t, which means we essentially have a polynomial in two variables, fq through nt of x. So the conjecture is f in fq of t comma x, not. So instead of a non-constant, we have a slightly stronger condition. We would not like our polynomial to be a polynomial only in x to the p. It should have some exponent that's not a multiple of p. I know my degree f is k. So the limit of n go to infinity, the sum over monarchy polynomials, degree f is n of the mobius of f of t comma f. I make my big polynomial g so that I don't have to keep saying f, g of tf, 1 over q to the n. The limit should equal 0. And so this is just a perfect analog of the conjecture we had over the integers. We're summing over polynomials with a given degree instead of integers of a given size. We still think the mobius function sum should converge to 0. The only difference is we have a slightly stronger condition on the polynomial. And that's for a very good reason. The conjecture is actually known by work of con or con or root and gross to sometimes be false when this condition is not satisfied. I know this also came up in your second lecture. But could you remind me again why you were placed less than x with an equal and the? So it doesn't super matter. I could have stated this one with a dyadic integral from x to 2x, and it would have been an equivalent statement. And I could have stated this one with a less than or equal to n or being a equivalent statement. It seems slightly cleaner to write. I mean, it kind of requires the least number of symbols to write less than x in this case, rather than to put lower and upper bounds. But here it seems simpler to do inequality. If I was doing it less than or equal to n, then the number of polynomials to divide by would be q to the n plus q to the n minus 1 plus et cetera down to 1, which would be a slightly more complicated thing to divide by. But it's just kind of. Is the general principle is the safe talk in both cases? Exactly, yeah. Can you give the simplest example, but then I will be x to the power of q for each of six volts? OK, so I would tell you the mechanism, not by giving an example. So this will come up. The theorem is this function for any polynomial in x to the p, this function is periodic in g. It only depends on the congruence class of g modulo something. And then, yeah, so then it's clear that even if your periodic problem doesn't cancel, if you just compose it with a linear polynomial, you can then make it cancel. Yeah, any polynomial is periodic. Most of these periodic polynomials will cancel, but then you can compose it with something else to make it not cancel. I think it's true the most. So the mechanism is there's this exceptional periodicity. So the theorem of myself and Mark is if the size of the finite field q is a power of p, the conjecture is true as long as q is greater than 4k squared p squared e squared. OK, so this is a somewhat strange statement. OK, first, you didn't miss a variable. e is 2.718, et cetera. So p is the characteristic. So both the size of the finite field and the characteristic are showing, and then kind of unsurprisingly, the problem gets harder as the degree grows. So the degree of the polynomial enters into our formula. And so how does the criterion work? It never holds over the finite field fp, because p is always less than p squared. It never holds over the finite field fp squared. But for all other prime powers, this is going to hold with finally many exceptions for a given k. So there are a lot of fields where our theorem applies, even if there's infinitely many, where it doesn't. Why do you say q is a part of p? Oh, well, I need to explain that p is a variable, is the prime that q is a power of. So q is the size of the finite field, and it's a power of some prime.  Yeah, so if I was giving a series of lectures only on this theorem, I would start at the very beginning by saying, let q be a power of p, and let fq be the field with q elements. But because I've been talking about finite fields fq the entire time, I'm saying, now let's introduce p, which is the characteristic which has been hidden before. Oh, I see you did use it before. Never mind. OK, mostly hidden. Oh, yes, right. That's a very good point. I did use it really, really right up there. That's a very good point. So I should have said that p is the characteristic up there. And then the only other comment I have on this is the floor is probably removable by being slightly more careful. But it's just a constant, so nobody really cares. And so I want to say something about how this is proven. And then I will describe the applications of the statement or really of a more precise uniform form of it to primes, prime counting problems in fqt. And so unlike in all the previous problems that I'm talking about, I'm not going to just take this sum and convert it into geometry in the most straightforward possible way of interpreting a set where summing over as a space and the function of the sheaf on some space and just directly calculating the combology of that sheaf and proving combology vanishing and bounding with any numbers. So what I'm instead going to do is to use a trick that converts the sum into a sum of simpler sums and apply geometric methods to each of those simpler sums. And you can also think of this geometrically of I have a problem on the combology of some space, and I'm slicing that space up into smaller spaces whose combology I can calculate directly, and I'm getting information of the combology of the bigger space sort of only indirectly. So but first we have to figure out what the kind of geometric meaning of the Mobius function is. So the key identity for doing that is that the Mobius function of a polynomial, which I think it was for simplicity, assume that that was a monic, the Mobius function of f, say its degree n, is minus 1 to the n times a character of the discriminant of f. So here delta is polynomial discriminant, and chi is a quadratic character. So it's a non-trivial homomorphism from the multiplicative group of fq to plus or minus 1. And we set chi of 0 to be 0. So it's essentially like a Legendre symbol. And so this gives a geometric interpretation, because the discriminant is going to be a polynomial function in the coefficients of f. And then this quadratic character we can construct from a sheave associated to the double covering of the square root of the square root. So why is this true? Well, first, both sides are 0 if and only if f has a repeated prime factor, which happens if and only if f has a repeated root. Otherwise, the polynomial f is going to have n distinct roots in fq bar. And the prime factors correspond to orbits. So the number of prime factors is the number of orbits. And so minus 1 to the number of prime factors is minus 1 to the number of orbits, which is minus 1 to the n. Sorry, the orbits of Frobanius. So Frobanius is acting on the roots. And I'm considering the orbits of the Frobanius action. And because Gaoua orbits always correspond to irreversible factors, and Frobanius generates the Gaoua group, number of prime factors is the number of orbits. And the number of orbits of a permutation, if we raise that to the power of minus 1, that's always minus 1 to the n times the sine of the permutation. And then for any element of the Gaoua group, for any polynomial, the sine can be calculated from the action on the square root of the discriminant of the polynomial. So sine of Frobanius is equal to Frobanius of the square root of the discriminant divided by the square root of the discriminant, which is equal to the discriminant times q minus 1 over 2, which is chi of the discriminant. Oh, yes. Oh, that's a very good point. Yes, so this only works for pi. Yes, in fact, every result I state today will be for pi odd, probably. So you certainly could use this formula to geometrically study the sum directly. So I guess another way of saying chi of delta f is the number of elements in fq, such that y squared is equal to delta of f, minus 1. Because if it's a perfect square, other than 0, it has two square roots, which is 1 plus 1. If it's not a square, it has zero square roots, which is 1 minus 1. And if it's 0, it has one square root, which is 1 plus 0. So the sum f and fqt plus Mobius of f of f, if you assume that the degree of f of f is constant, which is kind of easy to rig up, this would be minus 1 to the n times the sum, or the size of the set of f in fqt plus degree f is n. And y in fq with y squared is equal to delta of f, should be a g, delta of g of f, minus q to the n. So you count pairs of a polynomial and a square root of the discriminant of that polynomial plugged into something. And then you subtract often expected mean term of q to the n, and that's what you're bounding. So we would need to calculate the columnology of this variety parameterizing of some variety with an equation y squared is equal to delta of g of f. So the problem is that this variety is, we don't really know how to calculate the columnology of it. It's some messy thing. It could have complicated singularities that seem to depend on the polynomial g in a complicated way. So that isn't what we do. What we instead do is use the periodicity observation that is made by columnar to columnar and gross. We use kind of our own variance of it. So we want to use the fact that if we plug in mobius of g of r plus s to the p as a function of s, that depends only on s modulo, some polynomial depending on r, some function m depending on r and g. So let me explain where this periodicity is coming from. And I'll first do it in the simplest case if we just look at the linear, the identity polynomial. So mu of r plus s to the p itself. Well, it's minus 1 to some degree times this character evaluated at this discriminant of r plus s to the p. So what is the discriminant of a polynomial? It's the product of all the differences between the roots, square. And what that means is that up to some sign, general polynomial, delta of f is the resultant of f with the derivative of f. So let me say it like this. Alternative derivative of f with f. So if I take the value, the resultant of two polynomials is the product of the values of one polynomial and the roots of the other polynomial. And if you take the value of the derivative of f at one of the roots of f, you get the product of the differences of that root with all the other roots. And so we multiply from all the roots, we get all the differences between roots with each one appearing twice, just like the discriminant up to some sign depending only on the degree. And then this is, again, up to some sign, it's the same thing as a resultant of f with f prime, the products of the values of f at the roots of the derivative of f. So that means the Mobius function of r plus s to the p is plus or minus some boring sign, chi evaluated at the resultant of r plus s to the p at the derivative of r plus s to the p. So we have the derivative of r. And then the derivative of s to the p is p times the derivative of s times s to the p minus 1, which is 0 because p is 0. So this depends only on s modulo r prime. And it depends on s modulo r prime in a very nice way. In particular, you can take, at least for r, you can take for r square free at least, you can take a pth root of r modulo r prime and you get the resultant of r to the 1 over p plus s whole thing to the p with r prime. And that's just equal to the resultant of r to the 1 over p plus s with r prime raised to the power p. And you plug it into chi because p is odd. You don't really care if you raise to the power p or not. So you get a shift of the resultant with r prime. And that's basically a shift of a Dirichlet character modulo r prime. So in kind of the simplest case, we end up with Dirichlet character sums. And so there are tools in analytic number theory to bound in a non-trivial way sums of these kinds of Dirichlet characters. In particular, we're summing these Dirichlet characters over all polynomials of a given degree, which behaves like an interval in the integers. So you can apply techniques from number theory for solving Dirichlet characters in interval. Unfortunately, these techniques are not very helpful unless p is very, very small. p is like 3 or something. You can do something. But otherwise, the interval that you need to sum over is too short. I should explain what we're doing here. So what we're doing is we're observing that the sum for f of nfq is joined t, degree f is equal to n, u of g of f can be written as the sum of r in fq t plus degree f is r, the sum of s in fq t, degree of f less than n over p, mu of g of r plus s to the p, times 1 over q to the floor function of n over p. Because if we choose s, we're choosing s of degree less than n over p so that the degree of s to the p is less than n. And so adding s to the p to r won't affect its degree. And then every f can be expressed as r plus s to the p for unique value of r for every s. And so if you divide by the number of values of s, then you get the same sum. And so to get cancellation in this original sum, we just need to get cancellation in sum over s. But even in the sum over s, it's hard to get cancellation here by traditional analytic means because the degree of f is like n over p, or degree of r is equal to n, degree of s less than n over p. The s is less than n over p. The modulus of this character r prime has degree n. So this is something like summing a Legendre symbol a plus s over b for all s of size less than b to the 1 over p. And so this sum, we can't show any cancellation in this sum in a number theory context, unless p is at most 4, where we can use the Burgess bound. So for only very small p, as p is getting larger, this sum we're trying to show cancellation and it's getting shorter. And only for very small p do we have a hope of showing cancellation by geometric methods, by arithmetic methods. But for geometric methods, things are much better. This sum looks, so let me describe the geometry. So as a polynomial, in the coefficients of s, this resultant r over p plus s with r prime is a very nice polynomial. It's a product of linear factors, which are basically up to shift the values of s at the roots of r prime. Just by the definition of the resultant, it's the values of one polynomial at the roots of another. So if we, for this polynomial, do the same trick of taking y squared equal to the polynomial. So bounding the sum s and fqt, degree f, degree s less than n, chi of the resultant of r over p plus s with r prime is roughly the same as counting fq points on the variety y squared is equal to this resultant of r to the 1 over v plus s with r prime, which is a product of linear factors. So another way to say this, we have a branched cover of affine space, an affine space of dimension four of n over p, which is branched at an arrangement of hyperplanes in affine space. And we're trying to calculate the co-homology of this double cover. And an equivalent way of saying this is we're trying to calculate the co-homology of the complement of this hyperplane arrangement twisted by a one-dimensional locally constant sheet, the locally constant sheet of rank one that corresponds to this double cover. And an arrangement of hyperplanes is not nearly as scary a geometry as the vanishing locus of the discriminant of a general polynomial. And in fact, the same kind of trick works in general. So in general, the discriminant of g of r plus s to the p as a polynomial coefficients of s is a product of linear factors, which are obtained by evaluating s at some points, finally many points. So how can we check this is true in general? Well, we can use the fact in algebraic geometry that a polynomial is basically determined by its vanishing set. Or more precisely, a polynomial is a product of powers of irreducible factors. And you can't tell the powers just from looking at the vanishing set, but you can tell what the irreducible factors are. So it suffices to prove its vanishing set is a union of hyperplanes, which are all of the form, the set of all s that take a particular value at a particular point. Because any polynomial that vanishes of the union of hyperplanes will be a product of linear terms. And well, how did this work? So delta of g of r plus s to the p is equal to 0 if and only if g of r plus s to the p has a repeated root. At some point, we'll call it a. And so this happens if and only if g of r plus s to the p. And the derivative with respect to d of g of r plus s to the p both vanish at a. But this derivative by the chain rule is dg dt evaluated at r plus s to the p plus r prime times dg dx evaluated at r plus s to the p. So if we evaluate this so crucially, this derivative doesn't depend at all on the derivative of s more space. So then if we plug in a, what we get is this occurs if and only if g of a r plus s to the p evaluated at a equals 0. And dg dt of a r plus s to the p of a plus r prime of a dg dx s to the p of a is equal to 0. So this is two equations in the two variables a and r plus s to the p of a, or you can think of it as an equation in a and s of a. And so generically, these two equations will have finally many solutions because these two curves don't intersect. And in the case where it does have some curve where they intersect, you can check that's a degenerate case. And you still end up getting something periodic there. And so there's finally many pairs of values of a of s of a where this can vanish, which is exactly what we claimed in terms of this union of hyperplanes. So I want to talk next about the geometry of hyperplane arrangements, what makes them, so which ones are nice and which ones are bad? So normally, if we have a variety or a branch cover variety, we would study its singularities. And we would like it to be smooth, or at least to have as few singularities as possible. And that will make it easier to calculate the cohomology. On a range of hyperplanes, in some sense, it has a singularity whenever two or more of the hyperplanes intersect. That's where you'll see singularities of this double cover branched at the range of hyperplanes. So in that sense, our variety has very bad singularities. But for hyperplane arrangements, that's not the most, the best notion. What makes a hyperplane arrangement nice is if the hyperplanes intersect generically or transversely. So the singularities of a hyperplane arrangement are the points of non-transverse intersection. What that means is there are m hyperplanes intersecting in a space of co-dimension less than m. So if two hyperplanes intersect the space of co-dimension two, three-dimension intersects the space of co-dimension three, and so on, that is generic. That is what would happen for a random collection of hyperplanes. So whenever this doesn't happen, and there's excess dimension of the intersection, that is a non-generic behavior that makes potentially the behavior of the co-homology more subtle. And then for our hyperplane arrangement, this happens only if you're finally in many points. So why is this true? This is again true for some elementary reasons involving the geometry of polynomials. So our hyperplanes all have the form s of a is equal to b. So if you have m of m, you get s of a1 is equal to b1. s of am equals to bm for a1, b1 up to am, bm distinct pairs. So we're looking at an intersection of hyperplanes as a set of solutions to this kind of system of equation. If ai is ever equal to aj for i not equal to j, then bi will have to be unequal to bj, because our equation are distinct. We don't want a redundant set of equations. And there's no solutions at all. Otherwise, we have the problem of polynomial interpolation. We've fixed the value of our polynomial at m distinct points. Now we want to know how many polynomials satisfy it. And the general feature of polynomial interpretation and the interpolation, the equation are linearly independent. We can choose a polynomial of degree less than m going through any of these m points. So the solutions have code dimension m. Unless m is greater than the dimension of our space of polynomials, which is 4 function of n over p, in which case the solutions are 0 dimensional.  The only way that the dimension can be larger than you expect is if the dimension is 0. If the dimension is very small, but your expectation where it was even smaller. So you expected it to be negative. And so the only points that can be singularities are the solutions, these 0 dimensional solution sets, of which there's finally many, because there's finally many linear equations on this list. There's finally many subsets. So we have a hyperplane arrangement. And with this natural notion of singularities for hyperplane arrangements, it has very mild singularities. It's simple, normal crossings are away from finally many points. And this is even true at infinity. If you extend the hyperplanes projectively to infinity, then there will have no points at infinity where they fail to be simple, normal crossings. Or no, it's not quite true. It's because the parallel ones intersect each other at infinity. But other than that, they'll be simple normal crossings. And so we apply general methods to estimate the co-amology of the complement of a hyperplane arrangement with coefficients in a rank one locally constant chief. So the locally constant chief is coming here from basically splitting the co-amology of this covering into two pieces, one which is invariant under the operation setting y to minus y, and the other one which has sign flipped by the operation. And then the sign flipped part is the co-amology of a rank one chief on the complement of this hyperplane arrangement. And so such sheaves are kind of easy to parameterize. Around each hyperplane, the monodromes is given by, well, in the complex setting, by some complex number. In the allatic setting, some root of unity. And those numbers are totally independent. So for any tuple of a number associated with each hyperplane, we get a chief. And then we can prove co-amology vanishing results under this kind of generosity hypothesis on the hyperplanes, and also some kind of mild generosity hypothesis on the monodromes of this local system. Because vanishing would certainly not be true if your rank one locally constant chief was just constant chief, for example. And so we wrote two papers about this. In the first paper, we used a result that was very specialized to a specific form of hyperplane arrangements. And the second one, we used a slightly more general method, which we adapted from work of Cohen, Dimka, and Orlick. And they did work over the complex numbers. And we adapted their method to characteristic p and generalized it in some ways and specialized it in other ways. And so proving this co-amology vanishing result gives you a bound for the count of points on this variety, gives you a bound for this sum. And then summing that bound over r gives us the bound we want for the Mobius function. We should take a break, and then I'll talk about primes. That's not good. So a very general statement is if you have x on affine variety, x bar of projective compactification, then we have a j from x to x bar, open immersion. And if you have k per verse chief on x, then the co-amology with compact supports with coefficients in k maps to the usual co-amology with coefficients in k and lives in a long, exact sequence relating to the co-amology of the boundary of the compactification with coefficients in the push forward of k. And so this vanishes in degrees strictly less than 0. This vanishes in degrees greater than 0. So the simplest case is if the co-amology of the boundary vanishes, this boundary contribution in infinity vanishes, these two are equal. And so they vanish in every degree except for 0. So that's a very powerful vanishing statement. This is what I was using in the work with Tomplier. Here, but there's also a weaker statement, which is if j star k is supported on a sub-variety of dimension, a set of dimension less than or equal to d, then by a semi-perversity argument, this will vanish for i greater than d, I think. And that forces this by the long, exact sequence to vanish for i greater than d plus 1. So as long as this push forward is supported on a very low dimensional set, then you have also a pretty good bound on the co-amology. And so for the hyperplane arrangement, this seems like a reasonable strategy. You have an affine, sheaf on an affine space. There's a very natural compactification, which is projective space. You can push forward to that, and you can hope to show vanishing using the monodromy around the hyperplane at infinity inside this projective space. Unfortunately, you have a problem. There's sometimes no monodromy around the hyperplane of infinity in projective space. And our problem that happens roughly half the time, so it's quite a frequent event. And so what you do, the trick, is you do a switch. You pick one of your other hyperplanes, and you let the affine variety be the complement of that hyperplane in projective space. Because every hyperplane in projective space is complement looks like affine space. So you apply to x the complement of a well-chosen hyperplane in this projective space for function n over b. And you do some kind of local calculation using your knowledge of the singularities when you have transversality that makes it easy to calculate. When you don't have transversality, it's only finely many points, and it's just a zero-dimensional set. So the most important thing is that you need the monodromy around your hyperplane to be non-trivial. So if we're writing y squared equal to product of linear factors, we need to pick one of the linear factors with odd exponent. And the other thing you need to check is we don't want to have any other parallel hyperplane. So if s of a is equal to, we want to have an a that only appears once on our list of equations. So we want to have no other hyperplane which is parallel to it. And then we can use, so you need to check that such a hyperplane exists for most values of r. And you can check this under some generosity condition on g. And then you can force this generosity condition on g. It doesn't always hold, but it holds that for some substitution. So there's some details in rigging things to make sure this condition happens. But the main thing is, yeah, the hyperplane should be isolated, should not have parallel ones, and should have this non-trivial monodromy. And since writing this, we came up with a different method which should handle some non-isolated cases. But you definitely want to find, you definitely need a hyperplane with non-trivial monodromy. Because if there's no hyperplane with non-trivial monodromy, there's no cohomology vanishing. Because you just have just the cohomology of this hyperplane arrangement, and it'll have some compactly supported cohomology in degree twice its dimension, which is just an enormous degree. So the proof must somewhere take advantage of the monodromy being non-trivial. And we're taking advantage of it really only at one hyperplane, which is kind of a convenient thing to do. So a very classic conjecture in number theory is the twin primes conjecture, which says there are infinitely many n with n and n plus 2 both prime. Oh, sorry, n plus 2. And there's a generalization of it due to Bunyakowski, which might have in fact been the original statement, which says that for d even, there exists infinitely many n with d, n plus d plus both prime. And a more refined version of this was conjectured by Hardy and Littlewood. And so as always in number theory, we don't really want to prove something as infinite. It's much better to know how many there are in a given interval. So you can take for d not 0 the set of n less than x with n and n plus d both prime. If you take the size of the set and then you divide by x over log x squared, this should converge as x goes to infinity to some constant cd, a constant depending on d. And this conjecture can be motivated by the philosophy of randomness of primes. If we think of each number n as being prime with probability 1 over log n, then the probability n and n plus d are both prime is going to be approximately 1 over log n squared. And summing over n less than x, that's approximately x over log x squared. And the constant cd comes from the fact we have to adjust, for example, for the fact that almost all primes are even. Almost all primes are not multiple of three. We adjust for congruence conditions, modulo small primes. And so cd is a product over prime factor, over prime numbers. And it depends on which primes divide d. Yes, there is a need for it, yes. And this is something that we can conjecture an analog of in fqt. So for d not 0 and fqt, take the limit n goes to infinity. Cardinality of the set of f-monic degree f is equal to n. f plus d are irreducible. If we divide this by the q to the n over n squared, this should equal some cd. Which will be expressed as a similar infinite product. And the theorem of myself and Mark, this conjecture is true for q greater than almost like 700,000 p squared. So the quality of the constant has degraded somewhat from the shallow bound. But other than the constant, it still holds for all but finally many finite fields, except for the prime fields and the quadratic extensions of prime fields. And so this is a linear statement. And just like for a shallow, there is a kind of nonlinear analog for polynomials. So the conjecture is if we let g v of x be an irreducible polynomial. Well, first I have to hear, I should probably say that, isn't this conjecture false when q equals 2 and d equals 1? Oh, cd will just be 0 in that case. Yeah, so right. So here also, if d is odd, then cd is 0. You don't need to say d even, yeah. Yeah, it's a product of local factors. And then, yeah, so one should put a statement giving a criterion for the conjecture to be nonzero. Because it's kind of interesting. Yeah, but the conjecture is that it's nonzero. There's no local obstruction, because cd is encapsulating local obstructions to irreducibility. So if you take the limit of x goes to infinity, the size of the set of natural numbers n, n less than x, or g of n is prime, divided by x over log x, should be again some constant, depending on g, yeah. So here, did you prove just that cd, or did you prove the value of the cd to be? Yes, the value of the cd is what you expect. And it is a very precise statement, so the value of cd is what you expect. And it's with some explicit error term, also, or reasonably for the error term, of power savings type. OK, great question. So which conjecture do you think of, like Bayman-Horn? So it's pretty simple. It is unknown for every single polynomial, except for the linear polynomial. So the only thing we can do is if you have a multivariate polynomial, then you can sometimes count prime factors, and particularly the polynomial n squared plus m, or prime values, n squared plus m to the 4 is known by Duke Freelander and Vaniage to have infinitely many prime values. But there's not a single one variable polynomial that's not linear. That's known to take infinitely many prime values. So here, cg is not 0 if the leading coefficient of g is positive, no prime p divides g of m for all mz. So unless there's some kind of obstruction to getting infinitely many primes, I'm assuming the first one is only being obstruction if you don't count negative numbers as primes, then you should get infinitely many primes under this conjecture. And I can explain the formulas for any of these concepts that anybody wants to know how you write it down. They're all based on kind of the same principle. So what's the fq during t conjecture? We want to take g and fq of t comma x irreducible not in fq of t comma x to the p for the same reason. The limit as n goes to infinity, number of f in fq of t plus, degree of f as m, g of f irreducible divided by q to the n over n should be some constant, depending on g. And the theorem here, so for p odd q greater than 2 to the 10 times 3 squared times e squared times p to the 4, then this conjecture holds for monoc polynomials of degree 2. I again mean Euler's number, yes. That's a great question. So the Euler's number actually comes out of not out of the cosmology vanishing step here, but out of the Betty number bounds. If you estimate the Betty number bounds we get, which in the simpler cases we know are actually sharp, these Betty number bounds are expressed using binomial coefficients. And if you estimate binomial coefficients using Sterling's formula and try to see when they beat an exponential, then Euler's number pops up. So yeah, if you really optimize everything, the formula would be slightly different, but it's a very small savings and for a great increase in the complexity of the formula. So we can think of this as including the analog of things like the conjecture is infinitely many primes of the form n squared plus 1, for example, because that's a monoc polynomial of degree 2. And the method here should work for non-monic f of degree 2. It would have been a little more complex to prove. We didn't feel like proving it. The paper was kind of already long enough. So both of these results are proven using our work on the Mobius function as a key ingredient. And so to explain them, I need to explain the relationship between primes and the Mobius function. And so the relation becomes a bit nicer to express in terms of the moment angle function. So we write this just in terms of polynomials, although the same thing was defined much earlier for numbers. This is a function which takes non-zero values on primes and also on prime powers. So it is equal to degree pi if f is equal to pi to the r for pi prime r greater than 0 and 0 otherwise. And over the natural numbers, it would have the same definition with a log instead of a degree. And then the counting primes of a given form, for example, prime values of g of f is almost exactly the same thing as summing the volm angle function over g of f because the prime power contributions are very easy to rule out. It's very easy to bound how many prime powers are appearing and throw those away. At what sum of the prime power, you only divide by the degree to get back the prime counting function. So almost any time in the analytic number theory, problems about the volm angle function are equivalent to problems about counting primes. But the volm angle function is a little bit analytically nicer because, for example, I have a monoc polynomial f. I can write lambda f as the sum over monoc polynomials g, dividing f of the Mobius function of g times the degree of f over g. So this is kind of inclusion, exclusion in terms of the different prime factors of f. And you can check that this is non-vanishing exactly for prime powers. And another interpretation is the identity is the volm angle function is the coefficient of the logarithmic derivative of a zeta function. Mobius is the coefficient of the inverse of the zeta function. And this degree is the coefficient of the derivative. And so this is an expression of the idea that the logarithmic derivative is equal to the derivative divided by the original function. And the exact analogous thing is true more classically for natural numbers. So any time I have a counting problem about the primes, I can reduce it to a volm angle function. And then using this identity, volm angle sum reduces it to a more complicated sum with Mobius. So it's simpler to do the reduction in the Bayman-Horn case, even in that case it is more difficult overall. So this count of primes, degree f as n, g of f prime, is roughly the sum over f monic degree n volm angle function of g of f times 1 over roughly 2n for in the monic case. Because each prime will contribute to 2n here. And that is equal to the sum over f in fqt plus degree f is equal to n. Now we'll sum over g in fqt plus g dividing g of f, maybe we'll make that h, h dividing g of f, volm Mobius function of h, and then 2n minus degree of h. And so the strategy is to break the sum up depending on the degree of h. So for terms where the degree of h is less than or equal to n, it makes sense to fix h and sum over f. So we're summing over f where g of f is a multiple of h. We fix h, sum over f with h dividing g of f, which is basically a congruence condition on f, which is a congruence condition on f mon h. And so we're counting solutions to a congruence because the degree of h is less than the degree of f. The number of solutions is portion of the number of residue classes that solve it. And this is something that's multiplicative in h. We can use the Chinese remainder theorem to split it up as a product over primes dividing h. And then the Mobius function is also multiplicative. So we end up with a multiplicative function. And it matches our predicted constant cj. So these terms give cj. So if you think about just the case where h is 1, mu of h is 1, every f satisfy this. So this will give the main term of size q to the n. The terms where h is kind of a small degree are giving adjustments to the main term, but they're all relatively easy to calculate. There is no more, well, sort of. There'll be a little bit more. So yeah, there'll be a little bit more. It's yes. If degree of h is larger than n, at least maybe larger than 1 plus delta times n for n small, then what we want to do the opposite thing, we want to fix g of f over h. So make a new variable to be g of f over h. And then sum over f, where g of f is a multiple of the new variable. So I'll call it w. And then we want to sum over f, where w divides g of f. And we get a Mobius function now of g of f over w.  The solution is an arithmetic regression.   So we end up with Mobius of a polynomial in f star. And then we apply Chawa. And what's missing is some tiny range in the middle where the degree h is approximately equal to n. And here we have to do something different. And the trick we do involves the classic number theory of quadratic forms. What you can show is there exists f where h divides g of f, if and only if, h is represented by certain quadratic forms. So the first case of this is a natural number is going to divide n squared plus 1 for some n, if and only if, that natural number can be written as a sum of two squares, or more precisely, a sum of two relatively prime squares. And you can approximate n, like the number you're squaring, in terms of f in terms of n. The vector you plug into this quadratic form to represent your number. So we had to redo in the setting of polynomials over fine fields a bunch of the classical theory of quadratic forms. And what you end up with is you end up with sum of mobius evaluated at some kind of quadratic form. But then you end up with some weird extra terms. You end up with additive characters applied to the ratio of x and y, which comes from, basically, if you want to know if h divides g of f for some f in terms of quadratic forms, that's more simple. But if you want to know h divides g of f for f of a particular degree in terms of quadratic forms, it gets a little bit more complicated. And so what you have to do is you express this in terms of, some look similar to our Chao La type sums, except there exists this additive character in here. And so we have to run the argument proving Chao La's conjecture in a greater level of generality where you allow certain twists. In this case, a twist by an additive character at some kind of residue at infinity of a ratio of two polynomials. And so in the geometric setting, that turns out to be studying the same columnology groups, but for a somewhat more complicated sheaf. We're twisting with a sheaf that may be wilder amplified. Because every time there's an additive character here, we get a sheaf with a monotron of order p and that gives wilder amplification. But I guess if we're summing in the y variable, or sorry, it's x inverse mod y, x inverse mod y. Because it's x inverse mod y, there's no wilder amplification at infinity, there's only wilder amplification at some of these hyperplanes. So we're in a more general situation, but the geometry is pretty similar. We still have the same set of hyperplanes and the same transversality. And we can run the same kind of argument. And for the twin primes conjecture, the argument is simpler, except we have two primes now. So you need to apply this identity twice and you have two different divisors whose degrees vary. So you have to split up into more different cases. And again, there's a middle case. And in that case, to deal with the middle case, we used a purely number theoretic argument going back at something done by Fouvery. And maybe in the last few minutes, I'll say what is the way to think about the volmangrel function and this identity geometrically? Because we didn't use that geometrification of the volmangrel for this problem, we just reduced it to Mobius. But the geometric projection of the volmangrel is helpful for other problems. So if you look at the space affine space an parameterizes harmonic polynomials of degree n of degree n. And inside it, we have the space parameterizing square-free polynomials, which is the same thing as configurations of n unordered points in A1, parameterizes square-free polynomials. And so the roots define on n to 1 cover of confin. And that's a homomorphism, a map from pi 1 of confin to sn. And so representations of sn give locally constant sheaves on confin. And these sheaves extend naturally to an. They extend to an. And there's two different ways you could try to extend a sheaf. You could try one very naive way. You could say, I just learned a sheaf theory. I just learned about push forwards. Let's just push forward my sheaf from confin to an. Or you could try to be very sophisticated and be like, I learned about derived categories. And then I learned about perverse sheaves. And I learned that the best way to extend a perverse sheave is by taking the intermediate extension of perverse sheaves. But these two get you the same answer in this case. So interestingly, either one gives you the same extension. When you extend in that way, you get functions which are also nice from a number theory perspective. And so the trace functions, their trace functions, give arithmetic functions. So the mobius function corresponds to, well, minus 1 to the n times the function, the trace of verbanius, on the sine representation, or the sheaf corresponding to the sine representation, for exactly the reason that we just said this. The trace of verbanius on the sheaf corresponding to the sine representation is nothing but the sine of verbanius, which counts the parity of the number of orbits of verbanius. And if you extend the sheaf corresponding to the sine representation to an, it'll vanish everywhere on the complement of conf n, matching how the mobius function vanishes. And the volmanglet function is the sum from d equals 0 to m minus 1, minus 1 to the d, the trace of verbanius, on wedge d of the standard representation. So this is the n minus 1 dimensional standard representation of n. So why did this work? What are we doing? We're evaluating the characteristic polynomial of verbanius at 1 when we're taking this. This is the dth covariance of the characteristic polynomial. And we're summing it. We end up with the values of the characteristic polynomial at 1. So this vanishes. So this is 0 if and only if verbanius has 1 as an eigenvalue on standard, this n minus 1 dimensional standard representation, which happens if and only if verbanius has 1 as an eigenvalue twice on the n dimensional, on the permutation representation, on the permutation representation, which happens if and only if it has 2 orbits, because you get a 1 eigenspace for each orbit. And so this will vanish unless you have 1 orbit. If you have 1 orbit, the characteristic polynomial is t to the n minus 1 on the standard representation. So it's t to the n minus 1 over t minus 1 or on the permutation representation, t to the n minus 1 over t minus 1 on the standard. And so you get n. And then perhaps miraculously, extending this sheaf in the natural way from square free polynomials all polynomials gives the kind of extension of the prime counting function that number theorists have found most convenient to work with. And so this identity from the representation theoretic perspective come from a relationship between these wedge power representations and the sine representations that if you induce from a product of smaller symmetric groups the sine representations, you get a wedge power of two copies of the, you get a wedge power of the permutation representation, which you can split as two wedge powers of the standard representation. And by taking a suitable linear combination of those, you can find a single wedge power of the standard representation. And for some arithmetic problems, in particular, the problem of summing these functions in arithmetic operations of square free modulus, you can kind of work conveniently in this level of generality of an arbitrary representation of Sn. You can calculate the co-homology twisted by an arbitrary representation of Sn. And so you can obtain results for quite general arithmetic functions in this way. OK, thank you for inviting me to speak here. So you've talked a lot about problems which you kind of like you just kind of take them from like the rational numbers to kind of the finite field setting. Are there like problems which are new in the finite field setting or are there like problems which don't carry over like is there actually like a difference between? Like is there sometimes a difference between the two somehow? There are differences, certainly. So I mean, for example, this phenomenon we saw that the Mobius function for certain polynomials becomes periodic is not something that we believe happens over the integers, even though it's so there are. And then it's also easy to make differences if you don't properly account for things like the fact that the place at infinity is non-archimedean in the function real case instead of archimedean. So in talking about questions with an origin in the function field setting that don't come from classical number theory, I think it's somewhat subtle because if you had an origin that was completely unrelated to classical number theory, it's not clear that would be a number theoretic question. You could say it's just a general kind of question about the algebra of finite fields or the geometry of curves over finite fields maybe. But one example I can think of is there's questions where you take a number theoretic question and you transfer it to the functional context, and then you modify it in a way that makes sense in the functional context, but doesn't make sense over number fields. And so an example of this is any of these kinds of statistics questions, we're asked about the statistics of number fields. In function fields, those correspond to statistics of curves that are covers of a fixed curve, like degree D covers of P1 or something like that. But when you're considering curves, it's not so natural to look at degree D covers of P1. It seems more natural to look at all curves of a given genus. So any kind of statistical question you can ask for number fields, you can ask an analogous statistical question in function fields on average over all curves of a given genus, which unfortunately will probably be really hard because we do not have any idea how many curves of a given genus there are over FQ. We have no idea what the growth rate of the number of smooth curves of genus G is over FQ as G goes to infinity with fixed Q. Well, we have some upper bounds, but other than that, we don't really know. We have upper bounds and lower bounds, so there's a pretty big gap between them. So this is the kind of question. And then some things that are easier, like there are some problems where number theorists would study them over a given number field, but you would never think to ask for uniformity as you vary the number field. But in the function field context, it is kind of natural to look for uniformity as you vary the field, and those can potentially be more tractable. Yeah, I think that's the thing that makes the most sense, is that kind of question, which doesn't. You can't carry it back to the function field context because you can't just take an arbitrary number field of a given genus. That doesn't really make sense.


We all want to eat the kinds of foods that make us feel better and live longer. But there's so much conflicting information out there, so many nutrition opinions. Welcome to the Nutrition Facts podcast. I'm your host, Dr. Michael Greger. It's my job to give you the information you need to make the healthiest choices possible. Did you know that as we age, our telomeres shorten? Telomeres are a series of DNA sequences that protect the ends of our chromosomes from becoming frayed or tangled. As it turns out, a plant-based diet and lifestyle can effectively reverse their aging by elongating telomeres. Here's the story. Identifying simple strategies to prevent or delay age-related diseases is a major public health concern. But how could you measure the effects of such strategies? Telomere length is a reliable hallmark of biological aging and the risk of developing age-related chronic diseases. What is a telomere and why does it matter how long they are? Telomere comes from the Greek for end part of our chromosomes. Telomeres cap the ends of our chromosomes like shoelace tips to essentially keep our DNA from fraying. Telomere length is important since there's a minimum length required, but every time our cells divide, a bit of the telomere is lost. And once they get too short, the cell can die. That's why telomeres are sometimes called the molecular clock of cells. Every year they get shorter and shorter, kind of like life's fuse. But in some people, that fuse burns faster than in others. Accelerated telomeres shortening has been identified as a key biomarker for accelerated aging, disease risk, and diminished longevity. There's some good news. Telomere shortening can be counteracted by an enzyme in our cells called telomerase. Telomerase can replenish the lost bits and elongate our telomere. So how can we boost this enzyme to, in effect, reverse cellular aging? Exercise may help. Those with high levels of physical activity have longer telomeres, whereas obese individuals and smokers tend to have shorter telomeres, along with those getting inadequate sleep. But what about nutrition? Globally, we might expect that any antioxidant or anti-inflammatory diet could be protective for telomeres. So we're talking like a whole food plant-based diet was a reduced intake of meat and, in fact, swapping out animal protein in general in favor of plant-based proteins. Given that plant-based foods have well-known antioxidants and anti-inflammatory effects, there are fair grounds to believe that the consumption of plant-based foods can help that counteract telomere attrition. But you don't know if it actually would. Until you put it to the test. Dr. Dean Ornish, along with a Nobel laureate who co-discovered the telomerase enzyme, studied the effects of comprehensive lifestyle changes on telomerase activity and telomere length, using the same plant-based diet and lifestyle program shown to reverse the progression of heart disease and early stage prostate cancer, and maybe even early stage Alzheimer's, and telomere length shortened in the control group and they aged five years as expected, but didn't just not shorten as much or hold steady, but actually lengthened in the plant-based lifestyle group. Whereas in a similar study across a similar time frame, there was no difference in telomere length when just giving people the more typical low-fat dairy, skinless chicken breast, generic type healthier dietary advice. Antioxidant-rich plant foods help maintain telomere length. In contrast, total and saturated fat intake and consumption of refined flour grains, meat and meat products, and soda relate to shorter telomeres. People eating more anti-inflammatory diets tend to have longer telomeres. The greater the anti-inflammatory potential of the diet over time, the greater potential to significantly slow down the rate of telomere shortening. Those with the most pro-inflammatory diets had almost twice the risk of accelerated telomere shortening. The most pro-inflammatory food component is saturated fat found in meat, dairy, eggs, and junk, along with other pro-inflammatory food components like cholesterol and trans fat. Make it three, these tend to be anti-inflammatory, but when put to the test, fish oil supplements fail to have any significant telomere effects. The most anti-inflammatory food component is fiber. And indeed, if you look at dietary fiber and taking telomere length in a representative sampling of thousands of U.S. adults, even though nobody was eating enough, the more fiber people consumed the longer their telomere tended to be. Since there appeared to be a straight line increase, they could do the math and appeared that just a 10 gram increase in fiber per thousand calories would equate to four fewer years of biologic aging. Whereas, for example, the consumption of soda appeared to increase cell aging by almost two years per daily serving. Now, of course, diets high in fiber and diets with significant amounts of fruits, vegetables, and whole grains go hand in hand, so fiber may just be a marker for eating lots of whole healthy plant foods. But are there any specific plants associated with telomere lengthening? We'll find out next. Telomere length is considered a biomarker of aging. Shorter telomeres are associated with decreased life expectancy and increased rates of age-related chronic diseases. Telomere shortening has been shown to be accelerated by oxidative stress and inflammation, so since plant foods contain plenty of compounds with antioxidants and anti-inflammatory properties, it's plausible that their sustained consumption might help counteract telomere attrition. And indeed, if you pull all the best studies on the impact of nutrition on telomere length, the consumption of vegetables, fruits, beans, and nuts has been associated with positive effects on markers of inflammation and oxidative stress in parallel with longer telomeres. By contrast, processed meats, alcoholic and sugar sweetened beverages, and other foods rich in saturated fats, alcohol, and sugar are linked to an increase in inflammation and oxidative stress in parallel with shorter telomeres. Their randomized controlled trials, showing a whole-food plant-based diet and lifestyle program, could actually lengthen telomeres. Is it just because they cut out the junk? Those eating the most ultra-processed foods have been found to have almost twice the odds of having short telomeres. Maybe it's because they cut out the processed meat like Baking Ham Hot Dog's Lunch Meat Sausage, which had been associated with not only cancer and diabetes risk, but shorter telomeres as well, meaning accelerated cellular aging, though just having something like a steak was not similarly associated with telomere length. Processed meat, but not unprocessed red meat, is associated with shorter telomere length. This is perhaps due to the particularly high concentrations of glycotoxins, the advanced glycation end products, as well as carcinogenic nitrosamines in the processed meat that may promote inflammation and oxidative stress. The only unprocessed meat associated with shorter telomeres was poultry. For dairy, it appears to be the milk fat. A national survey of thousands of Americans found an association between increased biological aging and the consumption of high-fat milk. Even people just going up like 1% milk fat, from like 1% milk to 2% milk, low-fat milk to reduced fat milk, appeared to have more than four years of additional biological aging. Everything is because of the saturated fat, given that saturated fats trigger an inflammatory response. Not all plant foods are good for you, though. French fries and potato chip consumption is associated with shorter telomeres. Yes, fiber intake goes hand-in-hand with longer telomeres, as does higher vegetable and fruit consumption, but that may be trumped by a deep fryer. What about the consumption of a high-fat whole plant food, like nuts? We know higher telomere-building enzyme activities associated with a higher dietary antioxidant score, and botanically, seeds are packed with antioxidants, and by seeds they mean any food you can put in the ground and sprout a whole plant. Like whole grains, beans, chickpeas, lentils, nuts, they are naturally enriched in antioxidant compounds that protect the seed DNA from damage. Four weeks of navy beans didn't seem to affect telomere length, though. What about nuts? Well, based on how much your telomere is shortened every year, you can estimate the rate of aging. In other words, two people can have the same chronological age, same calendar age, but suffer more or less effective cellular aging.  So, what about nuts? U.S. adults of the same age would experience almost two years less biologic aging per ounce of nuts and seeds consumed per day, the amount I recommend in my free Daily Dozen app. The estimated biologic aging advantage would be nearly one year for each 100 calories of nuts and seeds consumed every day. The researchers conclude that clearly consumption of nuts and seeds accounts for meaningful lower levels of biologic aging in U.S. men and women, but that's just an association you don't know if nuts can slow telomere shortening until you put it to the test. A randomized control trial investigating whether the inclusion of one or two ounces of walnuts a day for two years would help maintain telomere length, which normally shortens with age. In the control group, their telomere shortened as expected over those two years, whereas the walnut group telomeres maintain their length though the difference didn't reach statistical significance. Now that was measuring average telomere length, and it's probably more telling to look at how long the shortest telomeres are rather than the average. And if you do that, look at the percentage of telomeres that are particularly short, the walnut group does edge out over the control group. It's well established that the length of the shortest telomeres is the key biomarker on the onset of senescence. The researchers conclude that the inclusion of walnuts in the regular diet for two years tends to delay leukocyte telomere shortening in older individuals. A study on pistachio consumption two ounces a day for four months reduced signs of DNA damage, but did not significantly slow the rate of telomere shortening. And this study, which randomized people to eat more mixed in nuts, found a higher risk of telomere shortening in the nut group for which the researchers could offer no explanation, so it's not clear whether nuts help with telomeres or not. Most supplement intervention studies observed no effects on telomere length as well with the exception of green tea. 36 elderly women were randomly divided into two groups, exercise alone or exercise with green tea consumption for five months, and a significant boost in telomere length in the green tea group with no change from the placebo. Green tea is essentially a green leafy vegetable we dip in hot water. How about eating green leafy vegetables? In fact, the healthiest kind cruciferous vegetables like broccoli, cabbage, collards, and kale, they pitted a raw versus cooked and found that cooked was better than raw for reducing DNA damage from a carcinogen, but raw was more anti-inflammatory. Consequently, to fully exploit the complexity of the health-promoting potential of Ethiopian kale and, by extension, maybe other cruciferous, a mix of both raw and cooked vegetables should be part of the diet. Okay, but what about for boosting the telomere lengthening age reversal enzyme, raw or cooked? Which do you think? A short-term dietary intervention showed that cooked, but not raw, boosted telomerase activity, in as short as five days eating one and a quarter cups of this kale a day. It was thought that you'd need like four months of a change to affect telomeres, but this study provides for the first time evidence that telomerase activity can respond in a matter of days to a food intervention, but not just any food, but the healthiest food out there, cruciferous dark green leafy vegetables. Finally today, Dr. Dean Ornish showed that his plant-based diet exercise and stress management intervention could, in effect, reverse the aging of our DNA. What effect might the stress management component have had? In my research into reversing aging video, I highlighted Dean Ornish's landmark study showing that a low-fat, whole foods, plant-based diet, high in vegetables, fruits, whole grains, beans, along with walking, stress management support, could not only reverse heart disease, open up arteries without drugs and surgery, and potentially reverse the progression of early-stage prostate cancer, but was the first intervention ever shown to increase telomerase activity, the enzyme that builds and maintains these caps at the tips of our chromosomes called telomeres, which appear to slow the aging of our cells. Yes, this new finding was exciting and should encourage people to adopt a healthy lifestyle in order to avoid or combat cancer and age-related diseases, but was it the diet, the exercise, or the stress management? That's what researchers have been trying to tease out in the six years since the study was published. Let's look at stress first. In the film The Holiday, Cameron Diaz exclaimed, severe stress caused the DNA in our cells to shrink until they can no longer replicate. Did Hollywood get the science right? Do people who are stressed have shorter telomeres? To answer that question, researchers measured the telomere lengths in mothers of chronically ill children. What could be more stressful than that? The longer a woman had spent being the main carer of her ill child, the shorter were her telomeres. The extra telomere shortening in these stressed mothers was equivalent to that caused by at least a decade of aging. We see the same thing in caregivers of Alzheimer's patients, and those suffering severe work-related exhaustion. Even those abused as children may grow up with shorter telomeres. Not much we can do about our past, but if we manage our stress, can we grow some of our telomeres back? Well, if you go off to a meditation retreat and meditate for 500 hours, you can indeed boost your telomerase activity. 600 hours of meditation may be beneficial as well, but come on, it's gotta be a quicker fix, and this exciting new study delivered. Caregivers of family members with dementia randomized to just 12 minutes of daily meditation for 8 weeks, so just about 10 hours in total, experienced significant benefit. Better mental and psychological function accompanied by an increase in telomerase activity suggesting improvement in stress-induced cellular aging. We would love it if you could share with us your stories about reinventing your health through evidence-based nutrition. Go to nutritionfacts.org slash testimonials, which may be able to share it on social media to help inspire others. If you'd like to see any graphs, charts, graphics, images, or studies mentioned here, go to the Nutrition Facts Podcast landing page, there you'll find all the detailed information need, plus links to all the sources we cite for each of these topics. My last two books were How to Survive a Pandemic and My How Not to Diet Cookbook. Get ready this year for the launch of How Not to Age, and of course, all the proceeds for the sales of all my books goes directly to charity. NutritionFacts.org is a non-profit science-based public service where you can sign up for free daily updates on the latest in nutrition research with bite-sized videos and articles uploaded nearly every day. Everything on the website is free, there are no ads, no corporate sponsorships, no kickbacks, it's strictly non-commercial, not selling anything. I just put it up as a public service as a labor of love as a tribute to my grandmother, whose own life was saved with evidence-based nutrition.


Okay. Hi, everyone. Thank you for coming. My name is Ashna, and I'm a software engineer at Microsoft. Hi, I'm Peter. I'm also a software engineer at Microsoft. Thank you all for coming today. We're really excited to talk about Eraser. Ashna and I and a whole heap of others have been working on it for some time now, and we're excited to share it with you. Yeah. So Eraser briefly is a tool to clean up vulnerable images from Kubernetes nodes. And before we get into the technical details of Eraser, we want to give a little background on why we created it. So the first reason is to eliminate the risk of spinning up vulnerable images. So as you can see, software supply chain attacks jumped over 300% in 2021. And by leaving lingering images on nodes, we're giving attackers the opportunity to spin up vulnerable containers. The second reason is to eliminate alerts for non-compliant images. A lot of teams and organizations are overwhelmed with the amount of alerts they receive, and there's no easy and effortless solution to this problem. So a common approach developers will take is they'll create a cron job and they'll use container D to target the non-running images in the cluster. But this is a manual approach, so it takes up a lot of time, and it can be more error prone. And a common follow-up is usually what about the current Kubernetes garbage collection. Unfortunately, it isn't as efficient since it deletes by a percentage of load. So once the disk usage reaches 85%, it'll start the cleanup of the unused images until it reaches 80%. And while you can customize this value, you don't have any control over when it happens or what images it's targeting. And finally, these solutions don't have any customization features. So as you can see, Eraser uses a config map, and you can plug in different components like the scanner or the repeat period. You can also have control over the cleanup and more. So as a solution, we created Eraser. Eraser is a CNCF sandbox project, and what distinguishes Eraser is the control it provides the developer, so you decide what gets removed and when. Now I'll pass it on to Peter to go over the architecture. Yeah, thanks, Ashna. As the slide says, this is architecture, and we have this architecture diagram. It's a little bit dense with a lot of arrows and words. So we are going to break it down a little bit and talk about it piece by piece. Before I get into the questions that erase our answers and the actions that it takes, I just kind of wanted to talk a little bit on a higher level of how it works. So there are two basic modes that it can operate in. The first mode, you can remove images essentially on demand. You provide a list of images that you'd like to remove. And Eraser will just act on your behalf and remove those from the nodes. That mode is always active, so whenever you provide an image list, it's a custom resource that the controller will pick up and act on your behalf. You can also provide a wild card if you want, or a partial wild card. And for example, remove all images, you just provide a star. And then the other mode, and this is enabled by default, is that it will run on a schedule. And by default, it's 24 hours, but you can schedule it to run as often or as rarely as you need. And what's going to happen is, whether you trigger it manually or whether it's running on a schedule, there's going to be one pod deployed for each node. You can exclude nodes if you like by adding a label to them. And Windows nodes are currently skipped by default. But one pod per one node, and it will collect information about the node and answer these three questions. The first question, very simply, is what images are present on the node? Kind of self-explanatory. The second question and answer is of those images, which are not tied to a currently running container. It's an important question to answer because pods are supposed to be self-healing if your pod crashes and the image has been removed from every node in the cluster. There's going to be latency while the pod attempts to spin back up and the image has to be re-pulled.  And just as an aside, I asked Dolly to visualize what it would be like if your garbage collector destroyed your cluster. And it gets better every time I look at it because I guess that says Kubernetes, kind of. And there's all our pods in a trash can, or are they nodes? Nobody knows because everything in Unix is a file. Everything in Kubernetes is a box. And they're all connected by ribbons, just like in the diagrams. Anyway, the third and potentially the most important question is of the images that aren't tied to running containers which contain vulnerabilities or a known CVE. And so the process of determining what to remove consists of listing the images, removing the ones that are tied to a currently running container, and then removing images that are not vulnerable. And this is the final list of images that we will delete. So now we can start to look at the architecture diagram and piece things together. The goal here is to give you enough information that you can extend Eraser because it is extensible. We have a pluggable model that allows you to configure its behavior down to pretty fine-grained details. So the important part here is the cube in the middle, the pod. The pod consists of three different containers, and they kind of act as a pipeline. So the collector pod's output goes into the scanner. The scanner's output goes into the remover. They share a small slice of the file system and communicate using named pipes just to get the information from one place to another. And they run in sequence. And they don't necessarily correspond. The three containers don't correspond one-to-one to the three questions. The first two questions are answered by the collector. And it collects information from the node using the container runtime interface. Most of you probably know what that is, but if you don't, the container runtime interface is the common interface that all of the runtimes provide. So it doesn't matter if you're using container D, cryo, even Docker shim, they all provide the CRI as a GRPC service. And you can do things like list images, list containers, so you can see how you can filter down that list. Then that list is then fed to the scanner. By default, the scanner that ships with Eraser is Trivi. Again, most people here probably know what Trivi is, but if you don't, it's an open-source vulnerability scanner. It will analyze the file system layers of your image and compare it to a database of known CVEs. It will look at various bits of OS metadata. It'll tell you how severe the vulnerability is. It'll tell you whether the image is end-of-life and no longer supported upstream. It'll tell you if there's a version of the package in, say, the Debian repository of the Debian image that fixes that vulnerability and if so, which version it is. And you can configure Eraser in its stock Trivi image. You can configure Eraser using the config map to act differently based on those criteria. But even more cool, I think, is that you can write your own scanner. You don't even need to use vulnerability as the criteria if you don't want to. Essentially, at the end of the day, you're just deciding what to remove. And Asha will go through it at the end, but we have a template set up on GitHub that handles the communication between the container that comes before and the container that comes after. And all you have to do is provide the custom logic and return a list of images from a function, depending on whatever you want to do to it. So then that final list is fed to the Remover container, which also uses the container runtime interface to call delete images on each of the images in that final list. And then your cluster is clean. And Asha is going to walk through our first demo. Okay, so our first demo is to use Eraser to clean up images periodically. So by default, this happens every 24 hours, but you can change that. So you deploy Eraser once and it'll handle the scheduling to clean up the images every 24 hours. So for this demo, we're going to start by creating a kind cluster. And we can call it Eraser demo. And for the sake of the demo, it's going to have one node. And I can skip this. And then we're going to apply a demon set with a vulnerable alpine image. So we're going to use this to load the image into our cluster. And then we can check that the pods are running. And now we're going to delete the demon set so that we have the alpine image present as a vulnerable and non-running image in our cluster. And we can check the pods again. And then we can exec into our node to make sure the alpine image is present there. And then we're ready to install Eraser. So we're going to use Helm to install Eraser and we're installing it in the Eraser system namespace. And once we install Eraser, it'll schedule the controller manager, which will then schedule the Eraser pod. So if we skip ahead, we can see when we get the pods, there is the controller manager pod. And then the one Eraser pod, since we have one node in our cluster. And we can also see the three containers that Peter mentioned before have completed. There was the collector container to get the list of non-running images, the scanner container to scan the images using Trivi, and then the remover container to remove the images that were found vulnerable. And they ran one after the other and communicated with namepipes. And since this pod has completed, the controller manager will go in and remove that pod. So we're left with just the controller manager now. And if we exec into the node again... I'll just skip back to the end. If we exec into the node again, there's no return value for the Alpine image. So we can see Eraser was able to successfully target that image and remove it from the cluster. And so that's Eraser running kind of in its scheduled mode. And I'm going to demonstrate how you can use an image list to skip the scanner and collector entirely and just... There we go. And just remove the images on demand. So similarly, I'm creating a kind cluster here. I'll skip that. There are three nodes in this cluster. And we're just going to look at the images that are on one of the nodes. And it's a whole bunch of stuff. For example, there are Kubernetes images, Kube Proxy, the API server, all that stuff. There's nothing... No NGINX there. So I'll skip ahead. We're applying this demon set here. One thing I forgot to mention earlier is people have asked us also why we don't use a demon set. To run Eraser, it would be a lot simpler to not have to manage the pods ourselves. The reason for that is that a demon set doesn't run to completion. If the process exits, it'll attempt to restart and is considered an error condition. The other reason is... Well, the reason that we don't want to have a long-running process is that in order to communicate with the runtime, we need access to the socket, which requires root access. We don't want to have a long-running root process in our cluster. So I've applied... Coming back to the demo, I've applied an NGINX demon set just to get NGINX on every node so that we can look at any node and see that it's there. So if we exactly into the node, these images are one and the same. One is just by tag. The other is by digest, they have the same digest. You add the eraser repo so that you can get the helm chart. The installation here is a little bit different because I don't want the scheduler to immediately kick off a job. I'm going to set some helm values to disable the collector and to disable the scanner. So it won't scan at all. It's just going to remove what we tell it to. So I just set these values to false. You can also do that in the config map. They are 100% mapped to each other. So we have the controller manager pod which we'll pick up on the image list that we will eventually create. We delete the demon set and you can see that those images are cached on the node. They will just sit there taking up space unless you intervene and remove them. So I'm going to zoom out just for this part of the demo so you can see the cause and effect here. It might be a little hard to see, but on the top we're watching what's happening in the eraser system namespace. On the bottom we are creating an image list. The API version is eraser.sh slash v1. The kind is image list. Kind of importantly, for now we can only have one image list in the cluster at a time and the name has to be image list. And then the real meat of this is the list of images. And so we're just going to give it that nginx image and check whether or not it gets deleted. So this is about to get applied so I will move up here so we can see what happens when it gets applied. One pod for one node. They all run. Let's do this quickly. And now we can check the node again. Okay, it's gone. There's nothing called nginx. Let's just double check to see whether or not that digest starting with um ADD479 is there. No, that's gone as well. The image has been deleted from our cluster entirely. So that's what eraser can do for you. And I'd just like to take a minute to whoops, talk about I'm stuck. Take a minute to talk about our future work. Hopefully what we'd like to see is people participating and a lot of future work being scanners that people write for themselves. Issues that people file. Future requests that people bring to us or want to contribute themselves. That's our ideal future work. But things that we do have planned right now are possibly surfacing vulnerable images. Giving some kind of report what's found on the cluster and what failed vulnerability scan. Staggering the load so you don't overwhelm the cluster by scheduling all the pods on all the nodes all at once. So you have the jobs run in waves. It's a little more complicated to implement. So the runtime interface has the concept of pinned images like the core Kubernetes images will be pinned so they don't get removed by the garbage collector. We don't currently respect that and we need to do that in the future. And then we want people to be able to have a custom location for the runtime socket. Currently we expect it to be in its default location. So we really want to encourage everyone to get involved. So we've linked our contributing guide as well as our Slack channel and GitHub repo where you can find us and request any features or bring up any issues that you might see. And we've also linked the scanner template repo if you want to try eraser with your own scanner. And since we have time I can show you that really quickly. So this is the link in the previous slide. And we have an example to show you where you can implement your own scanner. So all you have to do is put your implementation in the scan function and we've handled the communication with our collector container to get the list of images and the remover container that will remove the result of your scan function. And you don't have to use this for vulnerable images. Like Peter said, you can have eraser flag any type of image by putting the functionality in this scan function. And then once you have your code there you just compile this and put it in an image. And then in the config map or in the helm chart you provide that image as the scanner image.  This is my first KubeCon. It's Asha's first KubeCon. We couldn't feel more welcome. I'd also like to thank my friend Josh who knew I'd be a little nervous speaking and showed up in the front row dressed as a hot dog. Thank you, Josh. Thanks everyone. And you can find us at the end if you have any questions. Yeah, come find us if you have questions. Happy to talk about it. Thanks guys.


Mankind had struggled for six long years in the black night of a savage global war. Now the guns were silent. Bombs had ceased to rain down from the skies. The light of peace returned to the world. A world devastated by war with millions of death. For other millions of war-benumbed people who lived on in the ruins, there was a bleak and uncertain future. The most monstrous of the aggressors, who had been his own people's greatest enemy, was no more, dead by his own murderous hand. Carrying to a fiery grave his dream of an all-conquering new order built to last a thousand years. The last echoes of triumphant zig-hiles had died amidst the stark silence of devastation. The Caesar demigod of the fascists was no more. Killed by his own outraged people. The last echoes of triumphant choruses of duche-duche also had died amidst war's desolate end. The Japanese military war government was no more. Those who had been responsible for the carnage and destruction were tried and executed as war criminals. The Japanese militarists' dream of conquest of all Asia was as dead as the cities of Hiroshima and Nagasaki. The aggressors had launched and lost their war for world conquest. Our military forces had fought and won a war, not for conquest, but for the freedom and dignity of man. Here was the American soldier in victory. The soldier the aggressors had said was no soldier, the man who was not expected to fight. Yet here he was, returning in triumph to his homeland, to his country. The country the aggressors had declared incapable of successfully waging a major war. The country which now emerged from the greatest of all wars as the most powerful nation on earth. For the second time in 28 years the United States had fought a war against the ruthless forces of aggression that had threatened to destroy the ideals and principles of democracy. Those principles upon which the United States was founded, and upon which it continues to exist, its citizens pursuing their chosen way of life. But no war is without its tragic cost, to the victor as well as to the vanquished. The full cost of World War II can never be measured. A war involving 57 sovereign nations in a cataclysm of such magnitude that no accurate appraisal can be made of the toll in ruined lives, blasted hopes, vanished resources and treasure. For the United States, at war's end, one out of every 500 Americans alive at the beginning had been listed as killed or missing in action. For the aggressors, the price was far higher. One out of every 200 Japanese, one out of every 150 Italians, and for Germany, one out of every 25. A lesson in vital statistics for those who blindly follow ambitious dictators into rash adventures of conquest against men who would rather fight and if need be die than become the vassals of a totalitarian police state in which the individual belongs to the state and not the state to the free citizen. In World War II, we fought for democracy. Having emerged victorious, we sought to bring justice and freedom to our former enemies. To lead the peoples of defeated nations into a better life than they had known under the iron hand of their former masters. The dictators we and our allies had so recently destroyed. It was an immense task and we began by demonstrating through the behavior of our armies of occupation. And although we were there by right of victory, our reason for remaining was not for conquest. We had met the immense challenge of global war and achieved complete victory. Now we faced the challenge of ensuring the peace. That was General Douglas MacArthur's big job in Japan. He was to prove his genius in applying the arts of peace as resolutely as he had pursued the arts of war. The economy of a nation of more than 70 million people had been strained to the breaking point by years of war and then shattered completely by utter defeat. Thousands were homeless. Hunger and despair stalked the land. It would now be necessary to overcome 2,000 years of feudal tradition centuries in which the Japanese people had bowed severely to their masters and their emperor. Ritual and religious mystique were woven into their daily lives. The Shinto religion and its priests had been used by the militarists to instill a war-like spirit in its followers.  The formerly war-like Shinto religion was divorced from the militaristic rituals and exercises, becoming merely one of many religions from among which every Japanese was free to choose. In post-war Japan, political parties now sought the support of the Japanese people. Women were given the right to vote in the democratically free elections held throughout the country. School children began to learn that the world was larger than the islands of Japan and that the nations the warlords of yesterday had sought to conquer were today prepared to be friends. Seldom in history had a victor been so magnanimous, had step by step substituted democratic sense for totalitarian nonsense, tolerance for hate, hope for despair. The brilliant feudal land system was broken up. The Japanese farmer now had an opportunity to own the land he tilled. For the first time there was freedom of the press. A new and brighter sun had risen over the land of the rising sun. A vital and more responsible nation was emerging from the Holocaust of war. In Germany, the old Teutonic pagan gods of war resurrected by Hitler from the dark forests of Teutonic mythology were laid to rest once more. Those who had perpetrated the war and who survived were brought before an international bar of justice at Nuremberg, charged in the words of one prosecutor with crimes against the conscience of mankind. They had set in motion a war which killed in battle more than 15 million men, plus an unknown and unknowable number of non-combatant civilians. The chief Nazis were condemned by their own words. Documents written in their own hand showed them guilty. Guilty of genocide, the deliberate Nazi attempt to destroy whole nations and races, races the Nazis considered inferior peoples. More than 12 million men, women and children scientifically exterminated. More than 7 million taken into the slavery of forced labor. Guilty too of the moral perversion of the German people. Said defendant Baldofont Shiroch, leader of the Hitler Youth, it is my fault that I educated German youth for a man who committed murders millionfold. Such was the nature of the court's proceedings that not one of the defendants challenged the tribunal's fairness or authority. Victory had been won, and the major criminals brought to judgment by their intended victims. And now what? The victor was now confronted with the task of rehabilitating a nation mauled, blasted and stunned by a war of conquest that had backfired to the ruin of its instigators. Through their discredited leaders, they had brought the roof of their Valhalla crashing down upon their own heads. But we were left with the debris. Whole towns and cities were in ruins. We had the responsibility of providing the people with food to sustain them through post-war re-adjustment. We were responsible for the restoration and maintenance of civil order. Public health was assured so that the scourge of war would not be followed by the scourge of disease. Responsible democratic local, state and national government was established and made to function. Now the German people could choose their leaders through free elections. Gone was the era of the stormtrooper, the suppression of civil and human liberties, the endless propaganda and the mad dreams of fanatical leaders. The German people were quick to respond to their new freedom. With the aid and guidance of their one-time enemies, Germany began its amazing recovery. Insignificant contrast was the bleak atmosphere of Russian-occupied Berlin. Here democracy and freedom were not at work. Here was the bleak face of another kind of totalitarianism, the communist variety. Here the iron hand of Soviet Russia ruled a conquered people. World War II had seen the emergence of the Soviet Union as a military power second only to the United States. Her contributions to the defeat of Nazism and fascism, once she had been attacked by the Nazi aggressor, were prodigious. But Russia too was a totalitarian power and she was behaving like one. Estonia, Latvia and Lithuania became Soviet controlled satellites. So did Poland, Hungary, Romania, Bulgaria and Albania. These acts of annexation were not the result of free choice. The people accepted what was told to them. There was no voice of opposition. In Manchuria, by agreement with Russia, Soviet troops that had entered to liberate Manchuria from the Japanese were replaced by a Chinese communist People's Army, which would soon start a drive southward to conquer all China and bring it under communist rule. In Korea, newly liberated from Japan, a totalitarian communist regime assumed tight control over the northern portion of the country. The return of French military forces to Indochina was met by communist directed guerrilla warfare. In Greece, communist insurgents had begun open civil warfare for control of the country. Throughout the world, the designs of the new aggressor were becoming very clear. The West was warned of this growing danger by one of its great wartime leaders, Winston Churchill, at Bolton, Missouri in 1946, he said. From Stettin in the Baltic to Trieste in the Adriatic, an iron curtain has descended across the continent. Behind that line lie all the capitals of the ancient states of central and eastern Europe. Before the Senate Foreign Relations Committee, our own Secretary of State, Winston Churchill, proposed his program for combating the growing threat to Western Europe's economic stability. Within its own resources, Europe cannot achieve, within a reasonable time, economic stability. The solution would be much easier, of course, if all the nations of Europe were cooperating. But they are not. Far from cooperating, the Soviet Union, the Soviet Union, if all the nations of Europe were cooperating, but they are not. Far from cooperating, the Soviet Union and the Communist Party have proclaimed their determined opposition to a plan for European economic recovery. Economic distress is to be employed to further political ends. There are many who accept the picture that I have just drawn, but who raise a further question. Why must the United States carry so great a load in helping Europe? The answer is simple. The United States is the only country in the world today which has the economic power and productivity to furnish the needed decisions. The 6th and 8th billion proposed for the first 15 months is less than a single month's charge of the war. To be quite clear, this unprecedented endeavor of the New World to help the old is neither sure nor easy. It is a calculated risk. It is a difficult program. And you know far better than I do, the political difficulties involved in this program. But there's no doubt, whatever in my mind, that if we decide to do this thing, we can do it successfully. His program became known as the Marshall Plan, which provided vast economic aid to the devastated countries. Soviet Russia's growing truculence in her dealings with the free world were danger signs which could not be ignored. Another great wartime leader, General Dwight D. Eisenhower, assumed command of NATO, the North Atlantic Treaty Organization, which became a formidable alliance of 15 free nations joining their military forces for the first time in peace in an effort to prevent war which in the past had been their first call to unity. Since the end of hostilities, West Berlin had become an island in a communist sea. General Lucius D. Clay, our military governor in West Berlin, sent a message to Washington on March 5th, 1948, stating that, for many months, I have felt and held that war was unlikely. Within the last few weeks I have felt a subtle change in Soviet attitude, which I cannot define, but which gives me a feeling that it may come with dramatic suddenness. Three weeks later, the world discovered what General Clay had sensed. Suddenly, on the 1st of April, 1948, all traffic into West Berlin was stopped by communist border guards. Not a truck or train carrying supplies to the beleaguered citizens of West Berlin was allowed to cross Soviet-controlled East Germany. It was the beginning of the Berlin blockade. With the Soviets attempting to starve the people of West Berlin into submission, American, British, and French Air Forces immediately began an unprecedented airlift to save the city. The Allies were determined to provide the citizens of West Berlin with food and supplies needed to sustain life. For 20 months, from April 1948 to September 1949, more than 2 million tons of supplies were airlifted into West Berlin. This around-of-the-clock airborne operation kept West Berlin alive and caused the communists to abandon their attempt to starve the city. The determination shown by the United States and our Allies in Berlin caused the Soviets to call off the blockade. Some 2 million people had been saved from communist tyranny. But we had little time in which to congratulate ourselves, for in the same month that saw the lifting of the Berlin blockade, came news that the Soviet Union had exploded her first atomic bomb. The military strength of the North Atlantic Treaty Organization still existed largely on paper. The American divisions in West Germany were scattered in occupational and constabulary duties, as were our forces in Japan. And it was also in mid-1949 that the last American troops were withdrawn from an almost forgotten place called Korea, our entire active army stood at 658,000 men. A noted philosopher once said that those who cannot learn from history are condemned to repeat it. We were learning that lesson fast, but there was still a lot more to learn. In the next episode of this special Big Picture series, we will see what happened a few months after the events you've just witnessed on that then little-known Asian peninsula of Korea.