 Okay, is my audio good? Yep. Great. Thank you, Bjorn, for the introduction. And so good morning, everyone. This is very exciting. I haven't spoken in front of such a large group of people for a very long time. I haven't been outside Australia for about three years. So this is really wonderful being here. And I just wanna thank the organizers so I can see Bjorn and Jen and whoever else is here this early. For getting this whole show off the ground. I think I was first invited about three years ago. And I'm glad that it actually has actually happened. Been enjoying the hiking and hanging out with people and seeing old friends and so on. Okay, first thing I wanna mention is my course notes are online. And there is a stream on the Zulip system. GSS Harvey. So there's a link to the notes there. And I think Dana put them up on some PCMI IAS website. So I'm gonna be doing Blackboard talks, but they're gonna be following along those lecture notes. Okay, so I'm gonna be sort of giving a bit of an overview of what's in those lecture notes. But if I leave things out, it's because they're in the notes. Okay, so you should probably have them in front of you. That's a really useful thing to do for these lectures. And you can use this Zulip stream for asking questions, discussions and so on. I'll check it out a few times a day and see what's going on and answer questions. Okay, so what is this course about? So I wrote a paper in, I think, 2015 called Computing Zeta Functions of Arithmetic Schemes. Now I barely know what an arithmetic scheme is. It doesn't really matter. What this paper was really about was computing zeta functions of varieties of finite fields. So in other words, counting the number of solutions to systems of polynomial equations over finite fields. And what I did in this paper was that there are several sorts of sort of styles of complexity bounds that people approved over the years for these sorts of problems. So there's algorithms that run in square root of p time and algorithms that run in average polynomial time, all these sorts of things. And what I did in this paper was prove results that prove that you can get these complexity bounds for any variety at all, completely general. Okay, you just write your varieties in the section of hypersurfaces and then you handle the hypersurfaces and you go from there. So that was one nice thing about that paper. And the other nice thing about it is that didn't really rely on any fancy cohomology theories. It was all very elementary, right? You just need to form out some theorem and a little bit of number theory and it all happens. So what I wanna do in this course is sort of specialize the philosophy of that paper, the way I was thinking about this point counting problem to the case of hyperliptic curves. Okay, so what we're gonna do is only think about hyperliptic curves so that gets rid of a lot of the complication from the generality of that paper, but it still gets across a lot of the main ideas. And I'm also gonna specialize just for our sanity, I'm gonna work with curves defined over Fp. So not over Fq, but only over prime field. And that doesn't really, that just sort of simplifies a lot of the notation and gets rid of some of the complications. I believe Drew Sutherland's course did a bit of this stuff for elliptic curves in week ones. There's gonna be a little bit of overlap, but hopefully not too much, enough to make it helpful, but not too much to make it boring. That's my intention. Okay, so regarding these notes, so here's the notes. So they're kinda long, longer than I was expecting. They're too long, right? We're not gonna get through everything of these, almost 60 pages, we're not gonna do all of this. But the idea is that, we'll do a little overview and then you can take it home and if you're interested you can spend more time working through the theorems and the problems at your own pace. Could well take a few months and that's fine. Okay, so section one is an introduction and I'll just leave you guys to read that. We're gonna go through that. Section two is a sort of summary of results we need from fast arithmetic. So by this I mean stuff like multiplying big numbers, multiplying matrices, multiplying polynomials. So what I've tried to do in that section is just collect together all the main statements we need, all the complexity bounds that we need later in the course. So you could skim over it if you want. I'm not gonna talk about it in these lectures. What I'll do is I'll just occasionally dip into that, into that section, point out the results that we need when they come up. I mean I could lecture quite happily for many hours on multiplying big numbers and that sort of thing, but it's not what I was asked to do here. So I'm gonna start at section three today, which is about hyperliptic curves. And I think a lot of you already know this stuff in section three, but I just wanted to sort of have a starting point, just to get us all on the same page and just clarify a few issues that I know are often confusing for graduate students. One more thing I wanna say about the notes is about the problems. So there's a lot of problems in these notes. I think almost a hundred. So there's no way you should expect to do all of them. Just some of them, whichever one's interesting to you. So there's a few types of problems. So some of them are just standard testing your knowledge on what's going on. A lot of the problems ask you to give proofs of the various theorems. So I don't actually prove very much in the notes. I just have a problem and I give you some hints and some scaffolding and ask you to fill in the proofs. And that's a really important part of the course is to work through these proofs to understand what's going on. So some of them are just prove some mathematical statement, some trace formula or something. And some of them are estimate the complexity of an algorithm, for example. And that's another important part of this whole field of studies, estimating complexities. Some of the problems ask you to actually work out an algorithm, like design an algorithm that does something. And some of these are quite easy and some of them are very difficult. I mean, the ones towards the end, could be a research project. You could write a paper about one of these problems. Okay, so there's a big range. There's a lot of implementation problems and I've marked these with a special symbol, the little game controller icon. Now, I'm not a gamer, but my older son plays a lot of Minecraft, too much Minecraft. So those problems are specially marked and there's quite a lot of those problems and I really encourage you to do as many of those as you can. I think it's a really good way to learn how these algorithms work. Now, this is not a programming course. I'm not gonna tell you how to write this code. I know a lot of you came here already knowing how to do this and if you didn't, you probably picked up a lot in the last two weeks. So I have a concept in these notes of your favorite computer algebra system. Okay, and you can use whatever system you like. You know, you can write it in SAID or Magma or assembly code, whatever you like. I don't mind. I am completely agnostic about that question. I don't know Magma as well as I should. Maybe I'll learn some Magma from you guys this week. That'll be great. And finally, there are some unsolved problems in the notes and I've marked those with a little lightning bolt. So a single lightning bolt means a problem that I don't know the answer to. It doesn't necessarily mean it's difficult. It just means when I was writing the notes, this problem occurred to me and I thought, oh, I don't quite know how to do that, but that sounds interesting. I'll put it in there. It could just be that someone else knows how to do it and I don't and that's fine. So have a go at those ones. I'm interested to know if you solve them. There's a handful of problems with two lightning bolts. And now two lightning bolts means that I have tried very hard to solve that problem. Very, very hard and I still don't know how to solve it. Okay, so if you solve it, let me know we can write a paper together, okay? All right, so before I start, are there any questions about the notes or anything I've said so far? All good, all right. Let's get started on section three. So I hope these lights come on soon. It's gonna be hard to stay awake for everybody. So let's start to section 3.1. Sorry. Can I write darker? You mean, you sort of mean thicker, right? I can try, let me see. This doesn't seem to get any thicker. How do I write thicker? Is that the largest? This is a big one. Okay, it's the fattest one, there's one that's... There's one that's even fatter? No, maybe that's as fast as I guess. Yeah, I think they're the same fatness. Maybe there's a trick. Sorry, on its... Yeah, okay, hyperliptic curves. I deliberately chose this format, right? Because I knew that with laptops, connectors, plugs, everything, something always goes wrong, right? Nothing ever goes wrong with blackboards. Okay, hyperliptic curves, okay. So we're gonna be working over a field K. And for our sanity, we're gonna assume that the characteristic is not two. You can do everything in characteristic two, but let's just not go there. Now, for most of the course, K will be a finite field. Okay, but I will also need to worry about the case where K is the rational numbers in section seven. Hopefully we get to section seven. Yeah, I doubt I'm gonna get through all the notes, right? We'll probably get up to section six or seven. We'll just see how we go. And I'm gonna write G for the genus, which is gonna be an integer at least one. And some of you are probably already worried about G equals one. I'll come back to that in a few moments. So what do I mean by a hyperliptic curve over K of genus G? So I've got a curve C over K, these don't lock, do they? No, okay. Here's what I'll do. If I tighten them enough. Okay, let's try that. Okay, C over K is gonna be smooth algebraic curve associated to, it's falling off, no, it's good. Associated to affine equation, sorry, you're like this thing is falling off me. What's happened here? It's just falling off the ground. You go like, that's the mark, all right? Yeah, okay, it's supposed to go like this. Okay, so I'm gonna go like this. Okay, so I'm gonna go like this. Yeah, okay, it's supposed to go like this. I've also never used one of these guys before. Okay, let's try that. Affine equation Y squared equals F of X. Now what is F? So F is polynomial over K and I need a few properties. I need it to be square free and degree either 2G plus one or 2G plus two. Okay, so this is what I mean by a hyperliptic curve of genus G over K. So I wanna make a few comments about this definition. So firstly, let me just, just as a matter of notation, let me write F, F zero plus F one X up to F two G plus two, okay? So these FJs are in K. Now I'm always gonna write, I'm always gonna have the coefficients going up to F two G plus two, even if the degree is 2G plus one, it's just much easier that way. So maybe I should say that F two G plus two equals zero is allowed. Okay, that last coefficient can be zero now I should say something about this G equals one case. So usually for genus one, we don't call this a hyperliptic curve. That's not what it's supposed to be called. So it's supposed to be called an elliptic curve, assuming it has a rational point. But in this course, it doesn't really make a difference, right? Everything I'm gonna say works just as well when G equals one. When G equals one, you have a cubic or a quartic polynomial. And so I hope you will forgive me if I just call this a hyperliptic curve of genus one. Okay, so for the rest of the course, that's what I mean. Okay, so that's the definition. Woo! Okay. Suddenly everything is so much clearer. Everyone wakes up. Fantastic. All right. Now, this definition is fine. The problem is it's a little bit abstract, right? I mean, to sort of work out what this means, you need to do a little bit of algebraic geometry, right? For instance, what is a smooth algebraic curve associated to this? So there's a few ways you could do it. You could, for example, you could embed this in P2 and take the projective closure and then blow up the singular points at infinity and you'd get some smooth algebraic curve in a high dimensional space. But that's still not very useful computationally, right? Or you could do something with a function field. You could take the function field and look at the places, certain valuations, et cetera, et cetera. What I want is a really concrete way of thinking about the points on this curve because we want to count the points. So I want to be able to describe the points very concretely and explicitly. So let me show you how this works. It's all very straightforward except maybe what happens at infinity. I just want to make that very clear. So let's look at the points. So suppose we have a finite extension, L over K. And the question is, how to describe C L? Did I call this curve C? Yeah, C is a curve of K. So I'm interested in the L-valued points on C or in other words, the points on the curve with coordinates in this extension L. How can I describe these explicitly? Okay, so here's what I'm going to do. So there's a morphism, X, which goes from the curve to P1. P1 is the projective line, our fine line plus a point at infinity. Okay, so here's a picture. Here's the curve, and here's P1. And here's our X map. Okay, and this morphism induces a map on the L-valued points, which I'll also call X. So it goes from C L to P1 L. This is now just a map of sets. And P1 L, the projective line, this is just L, these are the affine points or the points in A1. And there's a single point at infinity. Okay, so if I want to work out what the points on C look like, what I have to do is just take a point in P1, which I'll call alpha, and work out what are the points that lie above it here. Okay, so question given alpha in P1 L what are the P's in C L such that X of P is alpha. Okay, now there are two cases I want to think about. So first case, very easy. If alpha is in L, right, if alpha is in the affine part, then we just solve. We just solve Y squared equals alpha in L. Okay, so we just look, we calculate alpha and then either it's zero in which case there's gonna be one point or it could be a non-zero square in L and we get two points or it could be a non-square, then we get zero points. Okay, so that's fine. And the other case is if alpha is the point in infinity, well, I can't just plug it into F, right? I can't sort of just plug in F infinity. It's sort of, it's not in this affine piece. So I need to switch to a different model. Okay, so what I'm gonna do is I'm gonna do a change of coordinate on the P1. So let me write U equals one over X. Right, so X was my parameter on P1. So the only problem is when X is infinity, so when X is infinity, I get U equals zero. So I just need to work out the equation for my curve in these new coordinates. So maybe I'll do that over here. So let's write out the equation. So Y squared is F zero plus F one X plus F two D plus two X the two D plus two. Now if I plug in X equals one over U, I'm gonna get a bunch of denominators here. I get some negative powers of U and if I clear the denominators and then I'll get some power of U over here and I have to absorb that into the Y. So let's introduce a variable V, which is going to be Y over X to the G plus one. And if I plug these into this equation and see what I get, I get this equation. V squared equals F zero U to the two G plus two plus F one U to the two G plus one all the way up to F two G plus two. And you can see what I get is I get another equation in the same form with the coefficients just reversed. Okay. And now you can sort of see why I wanted to keep this, this F two G plus two, even if the degree was two G plus one, it's because of this so there's some parity stuff going on. And if this happens to be zero, then of course I just get a zero constant term in this polynomial in U. Okay, that's fine. So now since I was interested in X equals infinity, that means I'm now interested in U equals zero, right? So X is infinity corresponds to U equals zero. So to find the points in this case, I just have to solve V squared equals, while I plug in U equals zero and I get F two G plus two. That's what I have to solve. And this is telling me how many points that infinity there are. Again, they're either zero, one or two, depending on whether F two G plus two is zero or square or a non-square in L. Okay, so it's gonna be, what I'll do is I'll define F infinity. F infinity is gonna be this highest degree term, F two G plus two. Okay, so let me summarize what I've done so far. So this is actually lemma 3.16, I think in the notes.