Hello everybody. Welcome to Valencia. Thank you for joining the stock. My name is Shea and today we're going to talk about Falco by passing Falco default rule set and perhaps even how to compromise a cluster without shipping the stock. Let's start. We'll start with the background what Falco is for and what's container security is about. And this is my view of container security. You can sort of divide it into four areas for security, cluster security, pre-deployment and post- deployment. And of course, host security is important because if host is compromised then it's really hard to reason about the workload security that runs on this host. Pre-deployment is about building the base images in an efficient and secure way, container and scanning, although some people call it a little bit scanning, but I like to be more precise. Scan for exposed secrets, static compliance, basically everything that we can do with the static image file of the container. Cluster security is all about Kubernetes config and then there's a post-deployment and that's where Falco is coming into the picture, runtime detection. There's also runtime protection, dynamic appliance and prevention is about existing, mostly about existing Linux security, kernel security mechanism that sometimes given for free in the container context. I've recently listened to the cloud security podcast and they suggested a bit different division into areas of container security. So they were talking about build infrastructure and runtime and that's sort of the way this maps on onto this view. Intra is cluster security and host security to build is pre-deployment and the runtime is actually post-deployment. So if that helps to think about it as well. And we can see that where the Falco belongs to, runtime detection through the Falco architecture. Falco is built on top of either kernel module or EBPF sensors running in the kernel space.  And the if rule is triggered then one can integrate that with the typical cloud stuff like CM or event in some kind of event engine or gRPC. But for our purpose we're going to use STD out today for the sake of simplicity and you'll see that in the demo. Typical Falco rule, I took in this case, this allowed the session connection. There is a concept of macro in Falco rule set. In this case it's called inbound outbound. This is really good concept because it prevents the rule file from bloating. Otherwise it would be way bigger than this because the macro can be used by different rules. In this case, this allowed the session connection uses three macros inbound outbound sysh port allowed sysh host and one of them is actually has and not condition which is the opposite of true. So if allowed sysh host is false then this rule has a chance of triggering. And then there's a priority mitre tag, et cetera, kind of metadata description. So all good. Now Falco rules in addition to behavioral detections, they can also be tailored to specific to detect specific exploitation attempts of the CVs if they are constructed properly. And this is the example to those four, but there are more right now. There's just four interesting ones that I thought to mention. Now let's talk about previous work on Falco bypasses. This is not the first talk about it. Before that NCC group did some research as well. They mostly described the bypasses around the image naming. Leonardo talked about this in one of his talks about the twin sys calls. And I think he also mentioned the similar evasion. There is an ongoing issue about the sister calls, missing sister calls, for example, open, open net, execute, execute, add, dupe, dupe, two, this kind of stuff. And then the recent work by Goa and Zen on Defcon, they were talking about talktow of file names mostly. So classic example for the, in the open net sys call the time of the check of the file name and the time of actual resolution of the file name are different. So that keeps the possibility of the evasion. And then they talked quickly about the similar invasions. All right. So now with that in mind, let's go into the interesting section. Let's start with the read sensitive file and trusted rule. We're going to use it a lot. And let's start with something simple, similar evasion. This is the typical way the Falka is used. We spin container, we do something malicious within the container, and Falka is spitting this output, warning sensitive files open because we're trying to read the it's a shadow. How can we prevent Falka from knowing that we did this? Well, let's create the same link to it's a shadow. And we do see that there's notice this Falka still saying something, but that's a different rule, right? Because the previous rule was warning level and right now we're notice. So that means that it's at least degradation of the detection. And this, by the way, this rule, the create, the monitoring of the creation of the of the simulings over the sensitive files was one of the protection mechanisms against the talk to attack. We'll see why this is not enough because even though we have degradation of detection, which is nice, but we can easier get rid of this rule as well. What can we do? We can create the simulings to the unmonitored directory. In this case, it's a security. Then we're using the cat to cat the relative path based on the security link. So one step above and then shadow. And we see the output of the shadow and Falka is silent because it's confused and the simulink is not resolved in Falka's context. What else can we do? Let's take a look at right below it's right below root files. In this case, we see the example of how they can be triggered. So we're doing, we're creating the symbolic link not to the root directory, but we call it the root link and then using it. And of course, it's that easy to bypass this rule as well just by using the sim link to the directory and then using it for the relative path. Okay, what about hard links? Yes, as well, we can use them. Hard link is a direct sort of point or to the I node. And in that case, Falka until version 0.31 where we actually committed this, the new rule for the hard links, it wasn't able to detect it as well. Now there's a special case of pseudo potential privilege escalation rule. This case is kind of reverse. So let's see what we're talking about here. There's a, the last year there was a infamous CV in pseudo, which allowed attacker to pretty easily escalate the privileges from the regular user to root. So when I was trying the typical POC by Warwick, I just downloaded it and so and try to see if that works or not. And it worked very, very easily on Ubuntu. I think that was 1804 and Falka was silent. So I got interested in what happened there. And what a stress S trace showed me was that the exactly was actually running the user bin pseudo and not the pseudo edit that the rule would expect. You can see here prokname equals pseudo edit rather than pseudo. And what happens here is that Ubuntu, in Ubuntu, actually pseudo edit is the sim link to the pseudo. So what the rule, the way it was constructed, what was expecting, the rule was expecting the sim link to the binary and it was getting the binary. And of course the exploit was still working and the rule wasn't detecting. So that was one of the fixes that we, that we committed in the version 0.31 as well. But this, this is interesting, kind of the other way around of this typical sim link invasion that you showed before. All right, enough of the sim links, let's talk about prokname. Prokname is the name of the process and many, many Falka rules rely on it a lot. So typical construct here lists, there's a list of login binaries names and management binaries names. And these lists are used in the rule called treat sensitive file entrusted, the same rule that we're looking at, we're using for our examples.  So all we need to ensure here is our process that will read the sensitive file will be named as one of the user management binaries. So what we do here, we, we write the very simple C utility, the treats file, and we compile it into system D log in D and call it system D log in D and using it to dump the shadow. And of course it's fine because Falka thinks that system D log in D is the name of that one of the user management binaries and the rule doesn't trigger. What else can we do? The thing is that this approach is not scalable, we can't write utility for, for every, every utility CLI command that we want to use. So but we can't do, can't create the symbolic link. And so, and call it system D log in D, like, like in this case, and use that symbolic link to dump the shadow and again, Falka is silent in this case. So again, symbolic link, but with the proc.name perspective. Eventually, simple renaming also works. If we can rename cat into the system D log in D, there we go. We, we have a, we have a perfect invasion here. What about parent and assets trust names? Yeah, so that's also a problem because in this case, for example, when we're looking at the condition where proc.name should be something and proc.pname should be something, what we can do, we can come up with a script and call it password, one of the accepted binary names and the script, the parent name will call the, the proc.name and that's how we sort of build this condition. And once that works, we can, we can easy dump it's a shadow without being detected. But we can make this evasion even more generic. What we have in the Fulver latest image, and you'll see this image a lot. This is the publicly available image that they created with various goodies to bypass the, to bypass Falka. This image creates one of the Fulver's Fulver fake parents. So that binary, that small utility, it knows how to fork a series of processes with the depth in this case depth of three. And it calls the ancestor, the first initial process is a Google account for solve the rest and then runs this command. And what it does, it basically tailor specifically this condition because the proc.name of three, it indeed starts and equal to Google accounts. And that's why the Falka is silent in this case. We can use this utility to build the nest in a name as answered our ancestors as, as we want. Reversal detection. This is also very interesting. This is a typical reversal payload that creates initiates reversal. And indeed it has, it causes for three detections here. So of course, the typical attacker can't, can't use it. What can we use? We can try to use make note and then type it into the ANSI. This is also very, very known one liner for initiating the reversal. And however, it's still, it's still shows detection. However, this detection is where you're very easy to, to avoid because to evade, sorry, because we can use either Simlink or proc.name evasion that we already talked about, but we can, we can do something more interesting. How about we use the MSF Venom? And for people who know MSF Venom, they know that this is the de facto payload generator. It's, it's a part of metasploit framework, right? And it's very easy to, to generate any type of payload. In this case, I'm generating reverse TCP payload for Linux base 64, copying it into the container, marking it as elf file. And there we go. We see the connection on the host's name and Falco is silent. So indeed this is, this is a tough problem to detect the payload execution as an elf, where it doesn't have a hash, a known hash, but, but Falco even not a, not a antivirus, right? So it's, it's a tough problem to detect this type of behavior. Perhaps this could, this should be detected on a network level though. What else do we have? We can talk about comment arguments manipulation. Netcat remote code execution in container, you can see that it tries to detect the indication of NC or NCAT along with a bunch of flags. So for NC, for example, there are two execution flags dash E and dash C that allow you to execute bash, for example, or other program upon the connection. And that's what this rule is trying to avoid. However, we know that Linux old and bigly, big Linux utilities, they have so many flag options that it's really easy, really hard to come up with the rule that will, will block all the potential flag combination. That's indeed the case. In this case, when we, we're using NC with dash E with classic dash E bin bash, it's of course being detected by the Netcat runs inside container rule. However, if we just add dash V as in verbosity mode, then the syntactical comparison fails here because the proc arcs doesn't contain dash E at this point. And then there we go. The Netcat runs inside doesn't trigger anymore. All right. What else can we do with the proc arcs? Um, we can take a look at the grab private keys rule. So it tries to block the find when any search contains IDRSA or IDDSA. And for people who know fine, know how much, how many options does it have and what kind of reach functionality does it have. And of course, with dash regex, it's, it's very trivial to bypass. We just substituting the R with, with a dot, but we can do the same with any other letter. And there we go. And there we go. We don't have syntactical comparison of IDRSA at this point. And the last interesting rule that I'm going to show bypass is the sensitive mount bypass. So the launch container with sensitive mount rule relies on this condition. And I don't know if you see the problem here. The problem here is that this, this comparison is very specific. What the attacker can do, they can mount var run, for example, or var, and then they use subdirectory path to refer to the docker. And I will use it during the full simulation attack later. But in this case, this is very easy to show. We just run in the docker with dash regex, var run, var run. And there we go. And we do have a shell response rule, but not the mounting rule that should have been triggered. And I think for the sake of time, we, I'm going to skip the crypto mining detection bypass. You can, and the privilege container detection bypass, although this one is interesting, but you can, you can read about this in the, in the GitHub director of the project later if you want, if you're interested. But let's jump to the tool bit, our tool bit so far contained two images, for the latest. And that's the source. You can see that it can, it has the docker client, it has kubectl client, and it has a bunch of network utilities, gbash, runc, and I tweak the names of those clients and bash so that Falco won't be able to detect them with the static, with the traditional rules. And then I have the CV 20, 21, 3, 1, 5, 6 images just to, to simulate that specific rule trigger that, that actually didn't, it didn't work. And then, but now it works after our changes. In case somebody wants to play with this. And finally, let's go to the interesting part. Let's try to put together all those evasions and see if we can perform the full attack simulation. Okay, so the demo setup is I was running it within the GKE cluster with the cluster nodes and single load cluster. One word about the cluster that they used is it was presented in the KubeCon 2019, two years ago. It was really cool. Just a testing cluster that shows how to just show some attack techniques and defense technique. And highly recommended. Pretty interesting one. And that works perfectly for our case. So it has two attack scenarios. Scenario one and scenario two. And scenario one is more basic with a more basic attacker and scenario two is with more advanced attacker. So let's go and start with the detection, the detections of the scenario one. Just, just we'll see what, what we expect from Falco to detect within the scenario. So the all scenarios start with the attacker given the web shell assumes that pod is already compromised. And, and then the attacker starts all kind of reconnaissance enumeration from within the pod. It runs the end, it runs the unnamed sR and then it sees, sorry, they see that the pod, the host is part of the Kubernetes pods. And there we go, we have the Kubernetes version, et cetera. We have all the environment variables. We have some kind of service account mounted here. And then at this point attacker tries to go to the typical way of compromising the, the cluster. So the, the download the cube cattle, they try to use it to get all the resources, whatever they can, and there was a bunch of resources. So it takes some time. And there we go. We have the attackers can see the pods. And then attacker uses AuthKanai to enumerate the, the permissions that the current pod has with the amounted service account. And apparently the attacker can't even create pods. Right. And that's what the attacker does. They create the, the malicious Bitcoin error pod that of course will mine Bitcoin. And we can see that this Bitcoin is an error is created successfully. But all this time we see that Falco is successfully detecting various malicious activities right here. So this will, for the socket, will be really hard to not to notice any malicious activity in this case. And here I'm using the lint piece just to demonstrate if, for those of you who know lint piece is a very known into Linux enumeration and privileges case escalation tool. And it's very popular. So if, if typical attacker will, will run it on the host, of course nothing will happen, but if they run it on the, on the falco monitor or host or container, then, then that's a problem because Falco detects a bunch of sketchy activities here. And of course, SOC will not stay silent in this case. Okay, let's go scenario two detection scenario two is a bit more evolved. The attacker is more advanced after the, so after the scenario one is finished, the, the defense actually detected easily that caught and they killed it. And so scenario two was able to get the same web shell, but now attacker is more advanced and they want to do something sneakier. And they're using this one liner. This one liner is very interesting because it smashes the hosped name space amounts the same process name space and launch, launches the privilege privilege pod. And at this point container has the access to host resources. You can see that root is the root of host at this point. So I'll skip ahead because this right in the attacker has access to the Docker site. And what the tiger does, they deploy the Bitcoin error this time on the Docker through the direct Docker API rather than the Kubernetes API. And that's a bit sneakier because then the defense will, for the defense, it will be harder to find that Bitcoin error. And in addition, what the attacker does, they want to, they think about the future. So for the persistent, they will, they find the cubelet token mounted on the host and use this token to actually, this is the token and they use the token to mount. So that's the get secrets commands. So yes, attacker can find any get secrets. And this is the mount of the, and this is the creation of the node port service for the future access. So attacker at this point is able to open the port on a note. And in the future access this port, this port if needed. And we still see that focus very active at the detection. So again, it will be quite easy for Sock to detect that something malicious is going on, on the, on the particular cluster. So put in the attacker's head. Now we're trying to avoid Falco as hard as possible. We are doing the same scenario to actions, but with the mind that we don't want Falco rules to trigger. So what we do here, we're still copying the kubectl, however, we're using our name evasion and we renaming the kubectl as kcattle. And from now on, the Falco rules that detects the kubectl activation within the container will not work. And we can easily use the kcattle from this point. And so the one liner that I am using, it's a bit trickier here. It's not privileged container at this point. We're still smashing the hostpad if we can. And I'm running the Fiber Latest, which is the Falco ultimate bypasser image. And as you saw already, it has gbash, which is different from the bash. So that rule will not trigger and we're mounting var run to get the access to the Docker socket without triggering the mount rule. And we are running the gdocker ps command. And let's see if we have the access to the host level Docker socket. Yes, we do. We can see that there's a bunch of kubernetes control plane images running here, containers running here. And we do have access to that. And that's great. So at this point, we can run commands. I'm what I'm doing right now. I am running the gdocker. I'm actually deploying the Bitcoin error on the Docker. And you can see that Falco is a bit active so far. It just had several three detections at this point, but it's all the same rule. And this level is notice and expected connection to kubernetes API. And I'm plowing through using the same one liner. This time, I'm looking for the for the kubelet through the kubelet mounted service account token. I'm looking for the one that will be able to open that to create that node port service and to open the node port. By using this token, we can see that it finally can do whatever we want pretty much. So now we have confidence we can mount that we can create the node port service. And that's what we do. Node port service. The name is Istio management, which is a sneaky way to pretend to be one of the Istio services. But for our purpose, what's interesting here is that Falco still only detects the notice and expected connection to kubernetes API.  Plus they might think that this is some kind of false positive. That's some kind of rule that triggers excessive amounts of false positive and decide to disable this rule if they do see this rule. But let's see if we can do even better than that. All right. So the difference here, this we're still talking about the second scenario. However, I'm modifying the command a bit to mount varlib as well. The mount command will still not trigger. I'm still using Fulberlatest. I'm still smashing hostpid. However, I'm performing the gbash command. So now I'm supposed to get the bashell into the container. It's not privileged container, but it has the access to the docker and the varlib and the cubelet tokens for the future. We have one detection so far. We have two detections so far, but we are root within the container. And we can pull the Fulberlatest again. And the more important that we have the access to the docker sock. So the neat trick that we're doing right here, we're tagging the Fulberlatest as a sysdick container. And from this point and on, Falcott thinks that sysdick, that Fulberlatest is actually named sysdick image. So we will be able to bypass that unexpected connection to Kubernetes API server because the sysdick is one of the containers that allow to make those calls. And as I called it, one of the accepted conditions in that rule. So let's see that we indeed do that. So at this point, I'm running an additional container from within the sysdick container, which is not really sysdick. I call it sysdick, but it's not. It's still Fulberlatest. We can see this in the last on the temp folder. It has all those utilities that we put there before. However, right now, from this point and on, Falcott thinks that we're in the sysdick container. So it will excuse this container from accessing the API, Kubernetes API. And at this point, we can do whatever we want. We can rummage through the Kubelet tokens, get in the tokens, and this command is important. I want to list my permissions, whatever I can do, from within the nested container. I'm using the insecure skip TLS course. I'm using the GKube Cattle so that Falcott will not detect that I'm using actual Kube Cattle. I'm using the server from the Kubernetes server host from the parent container. And I'm using the cache here. And cache here is important here. I want to set it as temp because otherwise the Kube Cattle will save the cache in the root slash dot cube directory, which would trigger the Falco otherwise. And we can see that we do have the permissions to do whatever we want at this point. So at this point, we can create node port and whatever we want. And still, we only have two triggers of unexpected connection. So there we go. We have only two triggers for the full cluster compromise, including the persistent access for the future, hopefully. Can we do better than that? I'll leave it as a homework. So for the fixes, if you're interested in the full project with all the details, those one-liners, you can find them in the Blackberry GitHub. For the change lock, we had a series of commits on January 25th that went into the 0.31 version. Discussion and recommendations. Well, very quickly, and we can discuss it more in depth during the Q&A section, I would say that hooking points are very important because we do want the sim links, for example, to get resolved as close as possible to the kernel C to get that kernel picture. No easy way to prevent attacker from bypassing the rules to rely on a prockname and prockname. And filename, yes, that thing needs to be minimized. Too many a rule includes construct and not. Because every exception, I understand that that's too minimized false positives, but that's also the entry for the attacker and possibility for the attacker to evade that rule. Review rule priorities in the bypass context, purely check of public exploits for the CVE-specific rules on the example of that to the privileged exploit that I showed, and then eventually encourage clients to develop their own private rules because then the attacker needs to know the ruleset source before doing any action to understand how to evade the customer-level rules before starting the app. And that's all I had for today. Thank you so much, and I'll be happy to take your questions.


Thank you everyone for your patience, sorry about the technical stuff, and welcome. So this is going to be a course about analytic geometry. The title is analytic stacks and we're going to be trying to explain the foundations for analytic geometry that we've been trying to set up for the past few years. In this first lecture I want to give an introduction, or maybe more properly an introduction to the first half of the course, because otherwise I'd be talking about too many concepts in one single lecture. So let me set the stage by giving some motivation. So, well, classically there are several different theories of analytic geometry. And I'll just list the ones that I may be familiar with. Maybe the gold standard is the usual theory of complex analytic spaces. And in the smooth case, these are the complex manifolds. So there are things you get by gluing together open subsets of C to the N along bi-holomorphisms, so maps that locally admit a power series expansion. And then there's the non-smooth case as well where you locally also allow the zero locus of some finite collection of analytic functions on those open subsets. So that's one thing. There's a generalization of this which was presented in Sarah's book on the groups in the algebras, which is the locally analytic manifolds, or generalization of the smooth case at least. So here you start with a complete normed field. And it can be Archimedean or non-Archimedean. And then again you glue open subsets of some K to the D along locally analytic maps or locally analytic isomorphisms. So that means locally around every point you have a convergent power series expansion with coefficients in the field K. And when K is the complex numbers, it does just recover the smooth case of one, and that's a nice reasonable theory. When K is the real numbers, it's sort of a version of the theory of real manifolds, and that's also kind of a nice reasonable theory. But when K is non-Archimedean, it's not particularly geometrically rich, unless you have some extra structure like a group structure or something like this, which gives it more geometry. And the reason is, so in the non-Archimedean case, so for example, K equals Qp, the structure is not rich enough because the topology on Qp or Qp to the D is totally disconnected. So it's not geometrically rich because the topology is totally disconnected here. So every unit ball will break up into P many other unit balls, and those break up into P many unit balls. And for example, in Sarah's book, you can find a discussion of the classification of compact, pietic manifolds, and it's just a very simple combinatorial classification, and it's the dimension and another invariant, and there's just really not much going on there. So this led then John Tate to, well this and some examples coming from uniformization of elliptic curves led John Tate to introduce the rigid analytic geometry, and this is over a non-Archimedean field. So it's a geometrically rich theory which works also in, which works in the non-Archimedean case. And in contrast to the theories above, you don't kind of really think of it in terms of specifying some ways of gluing open subsets of k to the d, or you don't even necessarily think about it in topological terms at all, you more actually think about it in algebraic terms. So instead of focusing on a local model, which in the classical case might be something like an open poly disk, a product of copies of open disks, you instead concentrate on a class of locally allowed functions. So there's a turn here. So focus on local rings of functions instead of local topology, and you kind of let the ring of functions tell you sort of what the topology is supposed to be. And the other turn is that the local rings of function, the local models that he uses are not functions convergent on an open disk, but functions convergent on a closed disk, which is something that makes sense to use in the non-Archimedean context. So the local rings of functions, well, quotients of functions convergent on a closed poly disk, and those are the so-called Tate Algebras. And then the manner in which you're allowed to glue these local models to get global rigid analytic spaces is kind of halfway between algebraic geometry and kind of usual analytic geometry. Yeah, it's not clear if Tate Algebras is just the functions convergent on a poly disk or quotients of these. Sometimes they are called a finite algebra. Oh, OK. It's a point about terminology. Yeah. It's not sometimes, in some references, but I'm not sure if it's a mistake or another. I'm not completely sure because it depends on the reference. Right. OK. Just in the two references, they say this, but the other one is an affinoid algebra. OK. Let's say it's an affinoid algebra then. Yeah, I don't know. OK. And this was generalized by Hoover to the theory of attic spaces. And this is a generalization. So note that rigid analytic geometry takes place over a base field. And a very loose analogy would be that attic spaces are to rigid analytic spaces as general schemes are to varieties over a field. So it's kind of, yeah, some useful generalization where you don't have to have a fixed base field. And again, you focus on your, you don't think necessarily of your local models topologically. You kind of think of them as being algebraically specified in terms of a ring of functions. But here also there's a new twist. So still have local ring of functions. By the way, I don't mean local ring in the technical sense from commuted to algebra. I mean like ring of functions on a local model. Yeah, just to be clear. Say called A, but you also include extra data of a certain subring A plus inside A. And what this A plus does is, well, to A you attach some space of valuations and then A plus will single out those valuations which view this subring A plus as being consisting of integral elements. And it's actually a very nice extra flexibility you have in Huber's theory that you can consider different choices of A plus on a given appropriate topological ring A. And we'll kind of see from a different perspective what this choice of A plus is really doing later in this lecture. Okay, so maybe I'll go over here. So when you say local ring of functions, do you mean really a shape on that open set? No, I just mean something like you specify a certain kind of ring and then you say that's my functions on my basic geometric model. You have to have a transition. When you go from one open set and intersect with a little thing. Yeah, so I didn't discuss gluing. So you need to say that kind of thing when you discuss gluing, we'll touch on it a little bit later, but I'm actually going to, for this lecture, I'm mostly going to stick to this sort of affinoid context where you just look at a single A. But of course that does need to be discussed and it will be discussed. Then there's Berkovich's theory. So these rings of functions you see both in the rigid analytic context and in the more general addict space context, the basic examples are things like you have a ring and it's complete with respect to a finitely generated ideal and you give it the inverse limit topology where all the quotients are discreet. And then maybe you're also allowed to invert something provided that inversion is kind of inverting everything you completed along, so to speak. So for example in the Tate case, you can write these rings of functions. So the most basic example of these things is you can take like Zp or let's say Z, just a usual ring of polynomials in one variable and you can complete it in the p-addict topology and then you can invert P and that's the functions on the closed unit disc in A1 over QP. So you complete along something and then you invert it. And these are also examples of Piatik-Bahnach rings and what Berkovich does is he says let's just work with arbitrary Bahnach rings to start with. So here the local models are given by Bahnach rings. So that again, while this theory is confined to the non-Archimedean case, this theory over here actually allows Archimedean phenomena as well because the real numbers and the complex numbers also count as Bahnach rings. And the global theory here is not quite as smoothly functioning as here. So to this ring Berkovich attaches this space of multiplicative semi-norms. So this is just a compact house store space. And the kind of gluing you're allowed to do is in some sense organized by this Bahnach, by this Berkovich space. Yeah, and I don't necessarily want to get into too much detail about that right now. But for example, you can see the complex analytics spaces as a special case of this, and you can also see rigid analytic geometry in some sense as a special case of this. Okay, so this was my very, very brief review of classical theories of analytic geometry. And please feel free to ask questions if you have questions. Those are some subtleties that are glossed over like the sheetiness in the global theory. Correct. In the Berkovich theory it has these different gluing, like in one, you can glue a long open to get complex money for, but to get things like regional interest, because it has to work only on a field, it's finest condition. Yes, yes. And then it does something quite artificial. Yes. To glue it like you do in rigid geometry, but in this language, in some sense it does transports it to its language with some extra things which are difficult to remember some conditions under which Yes, exactly, exactly. Yes, exactly, exactly. So the relation with rigid analytic geometry is indeed artificial, it's kind of not the correct, okay, but anyway. So what do I want to say now? I want to, okay, so we have all these theories, that's great, but now what again was the motivation behind coming up with a new theory? Is it just going to be 0.6 on the list? Well, not exactly. So why introduce a new theory? Well, these are all three or four, or depending on how you count these two, five theories of analytic geometry and kind of the relationships between them are more or less well known. Like I said that one is a special case of two and this one is a special case of this one and it's also a special case of that one and that one's a special case of that. You can formulate comparisons and the web of these things is kind of well understood in spite of the subtleties sometimes involved in the comparisons. It's fairly well understood. But so far there's no common framework in which you can put all of these examples. They all have their own flavors and while you can formulate comparisons it's not that those comparisons are taking place in some larger category that you consider. It's kind of done by hand in every situation formulating the comparisons between these things. So I want to accommodate all examples. I never remember how to spell accommodate. So that's one thing. You'd like a general theory of analytic spaces which can be specialized to whichever context you might be interested in. The second reason would be that, well, so of all these, of all the above the only rich theory allowing both Archimedean and non-Archimedean geometry is Berkovich's. But the gluing is not so well worked out and in particular I want to say that it, so the gluing was investigated by Berkovich he basically restricted to the non-Archimedean case almost from the start, first of all. And then more general gluing were investigated by Poignot, for example. But in that they always do the same thing. They fix a Bonn offering as the base ring and then they define affine space of some dimension over that base ring and then they glue along some kind of subsets of affine space that they pick out. That's sort of how the gluing works in Berkovich's theory. So it's not like, so it's all, and then the Bonn-Arch rings they take as their base rings often have restrictive hypotheses on them. So it's not like you're really understanding how you can glue two Bonn-Arch rings together to get some more global object and indeed the things you're gluing along in these affine spaces are often times not even controlled by Bonn-Arch rings themselves. They're just some other kind of object. So the nature of the gluing is constrained by a type situation and it's a little artificial. Well, no, I mean it's not necessarily artificial but it doesn't quite fit the mold when you think of how you go from like affine schemes to general schemes, for example, just by gluing those local models in some naive way. And so let me say, and let's say only what you could say finite type. So maybe I go over here. So another reason is that even individually in their own context in which they're supposed to operate these theories are less flexible than, for example, the theory of schemes. And one major reason has to do with issues of descent. So, for example, one of the main constructions when you have a scheme is the category of quasi-coherent sheaves. And that's a big fancy name but it's really something simple. When you have a ring, a commutative ring, you look at the category of modules over that ring and then it just glues to a general scheme and that's what a quasi-coherent sheaf is. But you don't have that in analytic geometry in any of the classical theories. And the reason is, okay, I said you always have some local ring which is describing the local geometry, so to speak. And of course, to that ring, you can certainly assign the category of all R modules but then it doesn't glue. So it's just not the case that if you have, in any of the allowed gluings that people choose, it's just not the case that an R module on two open subsets or closed subsets or anything that have gluing dead on the intersection globalizes to a general R module. Your point was, in analytics, there are the coherent sheaves of the basic system. Yes, this is the classical process. And I was going to say this, so you only can glue maybe finite type or finely presented modules. And this does give rise to the theory of coherent sheaves which is a beautiful and extremely useful theory. It's one of the main tools you have in analytic geometry but it's still constrained by the finiteness hypotheses that come into it. So for example, if you have a map of analytic spaces, you can't consider like the push forward of the structure sheaf as a coherent sheaf but that should be, that's one of the main examples of quasi-coherent sheaves you like to play with in algebraic geometry unless the map is finite or something. So the theory of coherent sheaves is really nice and it works well in analytic geometry in basically all of these contexts but it's still not as general and flexible as we're used to from algebraic geometry with quasi-coherent sheaves which have no inherent finiteness conditions. So these are all kind of, you could say theoretical reasons why we might want a new theory but there's also potentially a practical reason. So this is much more speculative. So coming from the Langlands program. So Fargan-Schulze, they famously geometrized local Langlands and that led to kind of a clarification of the local Langlands program and what was this geometrization based on? It was based on replacing QP by some more exotic object, Farg-Fontaine curve or really you have to let the curve vary in families in some sense. You could say Farg-Fontaine curve z. And this was produced in the language of attic spaces so it was attic space over QP, not at all a finite type. So quite a somewhat exotic beast which thankfully this theory of attic spaces existed to accommodate it. And again quite speculatively one might hope that not just the local Langlands program but the global Langlands program can also be geometrized. Very... Peter's always very optimistic of global Langlands but this would involve replacing say Q or Z by some family of exotic analytic spaces. And whatever such a thing is it's going to have to have both archimedean and non-archimedean aspects. For example there should also be a version of the real numbers which I believe Peter is working out. And it also is not going to be finite type in any sense. So there is simply no existing theory which could possibly give the language to describe such an object if such an object even exists. But it's good to have a theory, a precise theory to guide exploration of the possibility of such exotic things. So that's another motivation. So that is the end of my motivation section. So now's a good time for questions if people have them. So you are going to introduce this but which spaces... I mean which theory... are more general theories encompassing all of this? Yeah, I mean we're going to introduce a new theory and explain the relation to the previous theories. Yeah, that's good to say. So our goal is in this course is to introduce a new theory of analytic geometry and to explain the relation with the previous theories. Yeah. So you will have not only the basic analytic range but also some analytic spaces. Yeah. But today I'm only going to give an introduction to the affinoid situations, kind of analytic rings because it'll already be enough there. Yes? Why is the theory of previous spaces insufficient? Oh, it doesn't have any Archimedean. It's non-Archimedean by design. Yeah, also some... I remember forgotten now how it was called some kind of spectrum that combines and I forgot the name of this. Someone considered that. But he didn't develop it so much. Yeah, there could be other theories than the ones I listed. I just listed the ones that I knew were well studied. Yeah. Okay, so then let me move on. So continuing the introduction. Actually, I had a question. So in the previous sort of theories, I think like in the Berkowitz setting there were like rich theories of comology. What do you say? There were very nice about it. Yeah, but I mean, yeah, Berkowitz deeply studied at all comology in setting of Berkowitz spaces. Yeah. Okay, maybe I'll ask. So the next section is called Condensed Math. So the... Condensed Math. Yes. So this issue here, the issue with the scent, it can be attributed to the fact that these, on all these different theories, these local rings that you have describing the local models, they're not just abstract rings, they're topological rings. And for many purposes, for example, for... Well, yeah, so the local models classically are in fact topological rings. And it's important to remember the topology. So for example, okay, an algebraic geometry, the polynomial ring in two variables, which is functions on affine two spaces, the tensor product of polynomial ring in one variable and polynomial ring in one variable. Okay, but in say, rigid analytic geometry, if you take the tate algebra in dimension one and tensor it with the tate algebra in dimension one, again, you're going to get some crazy thing because you took an algebraic tensor product and you forgot the piatic topology. But if you do a piatically complete tensor product, you get the ring of functions, the correct geometric ring of functions, the two variable case. So you need to, in performing construction, such as tensor products, which are basically calculating fiber products geometrically, you need to remember the topology. That much is clear. So, and that's at the basis for the reason why you don't have a naive theory of quasi-coherent sheaves and you have naive problems with gluing outside the finite type case, I mean, finitely generated case. But topological rings and topological modules over them, which would be the kind of natural thing to do if you're thinking about quasi-coherent sheaves, are not suitable for a general theory. And the basic reason, there's many ways of saying it, but the basic reason is that, you know, if you form this category, it's not going to be a billion. The category of topological modules over a topological ring and you can dress it up however you like, you can make it much more specific or whatever, it's just not going to be a billion. And the phenomenon is that if you have a dense inclusion of modules, which happens all the time when you have infinite-dimensional things, then it's going to be both an epimorphism and a monomorphism, generally speaking, in your reasonable categories, but it's not going to be an isomorphism. So... Are you separated? Yeah, yeah, I would have to say separated to make that literally a true claim. So I'm... If you have your non-strict map and the image is total phonogies and this is not... Yeah. Yes, yes, yes, yes. Right. So... So what we do is we kind of go very back to the start. So we go back to basics and define a replacement for the category of topological spaces. And we do that in such a way that it's then very easy to pile algebraic structure on top of those things and talk about the analogs of topological rings and topological modules over them and such that we will get an Abelian category in the end. And the basic idea is one that is very old and I'm not sure... So certainly it was... Certainly Grotendijk used this idea many times but I think it might even be older than Grotendijk. Topological space is kind of funny because you have second-order data, you have a set of points and then you have a set of subsets of that. And that's fundamentally what makes it difficult to mix with algebraic structures. So instead you'd want to stick with kind of first-order data, just points. And the basic idea is you single out a collection of nice, let's say, test spaces S and then instead of encoding a topological space X as traditionally, so a set and some set of open subsets, we just record the data of what should be continuous maps from your test space to that topological space and kind of axiomatize the structure and properties you see in that situation. So we're only... We're going to choose a nice collection of test spaces and then we're going to say we only care about a topological space in so far as the phenomena are seen by maps in from these nice test objects. So... So you still have X ID and set? I put quotation marks around this. So I'll become a little more formal in a second and then you can ask your question. No, but traditionally like they wanted to do homotopy theory with... So one way was to have X as a set and do fix a collection of maps from topological spaces to X. Yes. Some people somehow work with this kind of... Yes. Yeah. Yeah, exactly. Constituted user once you can define homotopy and homology and do something. Yes. Exactly. Yes. Yeah. So yeah, maybe Spaniard is a person and... Yeah, I don't know. Yeah. So formally... So formally our test spaces will be profinite sets. So-called profinite sets. Which is the same thing as totally disconnected compact house door spaces. It's also just the same thing as inverse limits of finite sets where the finite sets have a discrete topology and the inverse limit has the inverse limit topology. And so this is what we used in a previous iteration of this kind of course. So the first course Peter taught on condensed math was with this class of test spaces but it does cause some troubles because it's a large category. So if there's no cardinal bound on the profinite sets then when you encode all of this data you're encoding more than a sets worth of data and it does cause some technical troubles. We more or less worked around them but so we're actually going to take a slight variant of this for the purposes of this course and we'll explain in more detail in the first few lectures I think why we make this precise choice. So we'll say a light profinite set is a countable inverse limit of finite sets. It's also the same thing as requiring it to be matrizable. And then a light condensed set is a sheaf of sets on the category of light profinite sets with respect to the Groton-Deek topology. And now I'll explain the Groton-Deek topology. So it covers our finite collections of jointly surjective maps, continuous maps. So finite disjoint unions are covers and a surjection gives a cover. So this is like the perfect topology because you could add you can add also. Okay, a covering sieve is one which contains a finite collection of jointly surjective maps. So okay, this is, we're using the language of Groton-Deek topologies here to be sure and possibly not everyone is familiar with the language of Groton-Deek topologies and kind of the general how you play with categories of sheaves and so on. Let me make it more explicit. So more explicitly, a light condensed set is a functor. I'm not going to avoid the language of categories of functors. So light profinite set up to the category of sets, such that. So the first thing is that, well, X of empty set equals point. Second thing is that X of a disjoint union of two things is the product. And the third thing is that if you have a surjection T to S, then XS is the equalizer of XT and then the two different pullback maps you have to the fiber product. And the example is any topological space, X gives a condensed set where the functor of points is just given by the continuous maps from S to X. So it's easy to see. Well, the functor reality is just that if you have a map from T to S and a map from S to X, you get a map from T to X. And it's easy to verify all of these properties for continuous maps out to an arbitrary topological space. So Groton-Deek topology, I mean, you can just unwind it to this, but actually it's kind of a bit illusory, the elementary nature of this definition because we are going to fairly seriously make use of the theory of Groton-Deek topologies and sheaves in this course. It's just not worth it to avoid that theory, especially since it comes up both here in the definition of light condensed set and also later in the way in which you glue the affine case of analytic spaces to general analytic spaces. We're just going to use the theory. So if you're not familiar with the theory of Groton-Deek topologies and sheaves, I suggest, and you want to follow this course, I suggest you read up on it. Okay, yes. I'm bothering a trivial question. So what is the morphology between two profilingite sets, light profilingite sets? It's just a continuous map and you require some filtration. It's just a continuous map, but it's also a map of pro-systems if you're thinking of it as accountable inverse limit. It's equivalent. Yeah, it's the same thing. Do we know what's on the points in the category of light condensed sets? Points in the topos theoretic sense? Yeah, I think so. Debatable. We'll discuss more such things in the coming lectures. Do we know since the imbalance of topological space in 2.7c, is that stupidly based or...? No, not for general topological spaces, but for a large class of topological spaces it is. Right, so there's one thing that's clear. I started with a general idea. You take some collection of test spaces and then you say what... You axiomatize the properties of maps from test spaces to a given topological space and you arrive at this axiomatics. But okay, it's actually not so simple because there's many possible choices of test spaces and beyond that there's many possible choices of which properties you want to put in... which properties you see mapping out from those test spaces to X that you put in the axioms for your general objects, light condensed sets. Actually there are other properties satisfied when X is a topological space that I didn't put in the axiomatics. So there's kind of a little bit of a delicate balance here and we will discuss more about how we arrived at precisely this choice, both of the test category of light-proponite sets. And this, for now I just want to make a couple of remarks which will maybe give a sense for why we make this precise definition. So first of all, maybe the two most important examples of light-proponite sets are the point. And then there's this... the one-point compactification of the natural numbers. And with this you kind of get the underlying set. So if you take X of S, then you think of that as the underlying set of your condensed set. And with this you get kind of a notion of convergent sequences in your condensed set. You get a set of convergent sequences. Again, it's abstract, so it's not literally... Well, in the case of a topological space it literally is the set of convergent sequences. So also those things were considered in this volatile topology of pattern. Oh yes, yes, yes, that's correct. But they used these projective things, projective covers which are not light. That's correct. So this will be discussed in due time. But yeah, it's true. Barton Schultz had this definition, but that doesn't mean that it was necessarily the correct thing to do for the purposes I'm about to discuss. But yeah, it turned out it was. Okay. But then another remark is that allowing all surjections to count as covers gives a nice simplification of the structure of the category. In particular, it gives some good homological algebra properties when you pass to light condensed abelian groups. You have a lot of flexibility of working locally when you allow arbitrary surjections to count as covers. But on the other hand, restricting the topology or requiring the topology, the Groton-Deek topology to be finitary gives good categorical compactness properties for light-profinite sets, sitting by the unate of bedding inside all light condensed sets. And moreover, and even for all metrizable compact house door spaces. So for example, the unit interval famously has a surjection from the cantor set given by decimal expansions. This is a light-profinite set and the fact that you have a finitary Groton-Deek topology and on the other hand, this guy is covered by this guy which is one of the basic test objects. It means that the compactness of these compact house door spaces, which we know from general topology, actually translates into a nice categorical compactness property inside this larger category. And for this, it's actually important to have these larger light-profinite sets than just the sets of convergent sequences. Okay. Let's see. Okay. Questions? From the front, I said light is not countable. No. No, that's not countable. I mean, you could ask the collection of clopin subsets to be countable. So is the same thing the same set in the topology clopin? Yeah. Yeah. Yeah, something like that. Or is it the same as matrizable, for sure? So, yeah. Well, just every part of the countable number of spaces is weaker than the same in the second countable. Yeah. Yeah, you need a countable basis for the topology in total. Yeah. So anyway, okay, yeah. It is the same thing as the topology category of the countable group in the topology. Yes, I guess. Yeah, exactly. It's the same thing that the set of clopin subsets is countable. Yeah. Okay, further questions? So I remind you that this is just an introduction. We will go into much more detail in the coming lectures. Okay, so what do we have now? We have, oh, maybe I give myself a blackboard. So what do we have so far? Now I've explained the light profanite sets, and so I'm going to move on to analytic rings. And I'll start with a point, which is that these, okay, from now on, sorry, so I'm going to drop the light. Okay, so just so I don't have to write it and say it all the time. From now on, condensed set means light condensed set, and profanite set means light profanite set. I always have this countable hypothesis floating around. So condensed sets gives rise to the notion of condensed ring, and condensed module over condensed ring. And it's really, if you're familiar with the Grotten Beach apologies and so on, it's completely immediate. So it's just a sheaf of rings, and then a sheaf of module over that sheaf of rings on this site here. It's also just a ring object in this category and a module object over the ring, that ring object in this category. Yeah. Questions to write a little bit bigger? Oh, a question to write a little bit bigger. If you have questions, like more of a comment. Or a request. Okay. I will do my best and please hassle me again if I don't live up to it. Yeah. They didn't ask me to write more clearly? Well, anyway. Sorry? The formula is more clearly. Thanks. Yeah. Okay. And that's all well and good and you might think naively, okay. So we have this category of condensed rings, for example. Why can't we just use that as our local models for our analytic geometry? Kind of by analogy with schemes, where schemes are based on discrete, by the way, ring means commutative ring. Schemes, you start with discrete rings and then you figure out a way to glue them and then you get schemes. But it's not enough just condensed rings to get a good theory of analytic geometry. But. No, please. Condensed ring is the same object where set is replaced by a ring. Yes. That's correct. But there is no additional structure of the ring. It's just an abstract ring. Right. But condensed ring. It's just an abstract ring with those properties. No, no, it's a collection of abstract rings, one for each S. Yeah, okay. But it. It should satisfy all those properties. XS cross XT, what does it become? The tensor product of the rings? No, the Cartesian product of the rings. Yes. Yes. Yeah. Where was I? But are not enough to give a good geometry. And the basic reason is this follows. So, let's say condensed rings alone. So, the category of condensed rings has pushouts given by relative tensor products. Just like in classical, just like with classical commutative rings. And those relative tensor products are what, geometrically speaking, should be calculating fiber products for you. And they're the things that I said should correspond to completed tensor products. Right. But if you have condensed rings A and B over a condensed ring K, and you form this relative tensor product in this category, you can ask, well, what is the underlying ring of this? And it turns out it's not actually hard to see from the nature of the Groten-Dichtapology that this is the same as the abstract tensor product of the underlying rings of all the individual things. So, this condensed ring here is just gives a condensed structure. Yeah, yeah. Just gives a non-trivial to be sure, but just gives a condensed structure on the abstract tensor product. So, it's not, in particular, it's not giving a completed tensor product. The completion procedure does change the underlying set. Right. So, this is not yet doing the correct thing. Okay. So, to fix this, we put additional structure on the condensed ring. So, we record some class of modules, I mean condensed modules, which are to be considered as complete, in some sense, complete. So, the basic Yeah, and that will Oh, I forgot to write larger. Oh, that would give the notion of analytic ring. So, an analytic ring will be a condensed ring together with some extra structure, which will tell you which of the condensed modules over that condensed ring you should consider as complete with respect to the theory that's being described by the analytic ring. But before I make the definition more precise, I have to scare more people away. I already said you should no groan and dig topologies. Get ready. So, I kind of, I have to say more precisely what I mean by ring. So, but I'm going to scare you, but then I'm going to say why you shouldn't be too scared. So, why is this a question? I just already told you ring means commutative ring, right? But, You didn't say collocating. No, I did. You need to pay better attention. So, what kind of ring? Okay, so experience in algebraic geometry shows that the generally correct notion of a fiber product of schemes is actually the derived fiber product, which on the affine level corresponds to derived relative tensor product of rings. Now, the reason more people don't do it that way is because it's a technical hassle to talk about these things. These derived tensor products and derived rings and so on. But actually that's not true anymore. We have Jacob Lurie's works. It's not a technical hassle anymore. You just have to, you just have to do it and it's no problem. So, we're going to do it because it's the correct, it gives you the correct relative tensor products with giving a good theory in general. Now, that being said, basically all of the basic examples that we discuss, almost all of the basic examples that come up will not have any derived structure. It will just be ordinary rings. So, you can comfortably follow the course even if you're not very familiar with derived rings. But you should bear in mind that for the general claims that we're making it won't necessarily be true if you imagine everything to be an ordinary ring, although in examples many things will indeed be ordinary rings. But now we go down a rabbit hole because once you decide to work with some notion of derived rings, there's actually several unequivalent choices of what you could mean by that. So, so should be derived but which kind? There's two basic options and that's kind of infinity algebras and what some people call animated commutative rings and one of those people which are the things that are presented by simplicial commutative rings. And then there's also the choice of whether you want it to want to allow negative homotopy in both cases. We won't allow negative homotopy and we're going to, for the purposes of this course, we'll choose this one here. It's more directly tied to classical algebraic geometry. When you start with ordinary schemes and you take derived tensor products, the things you get always have this extra structure so it makes sense to remember that and not think about these more general things but actually the whole theory that we're developing works perfectly fine in any of the different variants and in fact it's even less technical to set up in this seemingly more complicated setting here for reasons which I think we'll get into. But, the algebras in the sense of spectra there's also that choice. Do you mean infinity algebras over z or over the sphere spectrum? Yeah. So, formally then so just to get it on formally light animated ring oh sorry condensed animated ring is a hyper sheaf of animated rings on the site of light profanite sets. But again I'm not saying light. Okay and now I'm going to make another convention that I'm probably just going to say ring when I mean animated ring and if I want to stress that it actually just lives in degree zero I'll say classical or maybe or static static being kind of the opposite of animated. Right and that should also help those of you who are not familiar with the theory to just pretend that everything is an ordinary ring because that's pretty much okay. Alright and the the basic invariant for us of such a condensed animated ring is its derived category. Well I need to write bigger of such such an R is its full derived category. So is this defining doubly in some way? Yeah, so you look just at hyper sheaves of modules over this unbounded modules over this sheaf of rings R. I'll just say. Do you have a simplisher or does it do it? I don't know. If you want to you have simplisher modules over a simplisher ring is it not enough to have unbounded in all the reckoned Yeah you don't really set it up like that you don't talk about simplisher modules over a simplisher ring because then that would be the connective part you could do that and then just say you kind of formally add in the negative things by filtered column or something. I mean the way he does it is he forgets the infinity algebras and then that's just a commutative algebra object in d of z and then that has a natural notion of module in the infinity category theory. So I mean the theory of modules factors over the underlying infinity algebra. And this is in which in the higher algebar maybe or SAG probably discussed in more detail spectral algebraic geometry I'm going to say something to help orient so if r is static so again that means it's just an ordinary condensed ring then this is the usual or the infinity category enhancement of the usual unbounded derived category of the abelian category of condensed r modules. Again in the totally naive sense of you have a sheaf of rings and you take a sheaf of modules over that sheaf of rings. Yes? Can I ask you to comment on specifically why you want hyper sheaves ever? It's because we want things like convergence of Posnikov tower and we can prove that in the world of hyper sheaves but we can't prove that in the world of sheaves so we don't know that sheaves and hyper sheaves are the same thing so we can always prove everything is a hyper sheaf and we can always, I mean hyper covers never give us more trouble in practice than ordinary covers so we're not losing anything by requiring that. Yes? Do you have a question in the analogy like classical algebraic geometry? Yes. Can you define schemes in general like just co-limits of representable sheaves? What happens if we do the same here? Like we glue all sheaves over condensed strings. No, with just condensed strings you're never going to get a good theory. You need this extra structure. Yeah, I mean if you take sheaves over condensed strings that's all. I mean the same reason will hold, yeah? I mean this will be your pullback in pre-sheaves and it's just not the right thing. So, yeah. Other questions? Oh, yes, hi Matthew, yes. It's not clear to me that a static animated ring is a condensed animated ring in a new sense. It seems like you need some vanishing of co-quality because clearly it was defined as a sheaf condition in just the one categorical sense. It works, I'm not going to get into it right now but we'll talk after, yeah, this is not the time for such a technical question, apologies, but don't worry if it's correct, yeah. Okay, so okay, so now I can give the formal definition. Yes, yes. I don't want to say discreet because we also have this condensed stuff and then discreet could mean, yeah, so that's the reason for changing the terminology. Wait, so what Matthew? No, oh for no, no. Right, exactly, exactly. Okay, so the definition is so an analytic ring is a pair R and then I'm going to use funny notation. This triangle thing is a condensed ring. The derived category of the analytic ring is supposed to be a full sub-category of the derived category of this condensed ring which is sort of its envelope is such that and then we're going to demand some rather strong closure properties. Remember the idea was this was supposed to be singling out a collection of complete modules and the first condition is that this full sub-category is closed under, so inside this ambient category here is closed under all limits and co-limits. The second property is that if let's say N lies in here and M lies in here then kind of the internal R-hom from M to N still lies in the smaller thing. The third condition is kind of technical. So I said we wanted our rings to be connective so no negative homotopy. In some sense we also want to require that our analytic rings be connective and we say it like this. So if let's say this denotes the left adjoint to the inclusion so again that's some kind of completion functor this completion sends the connective sub-category here to the connective sub-category again. So it preserves connective objects. I should have said I'm sorry I meant to remind over here so I said if R is static this is the usual unbounded derived category of this abelian category in particular it has a T structure has a notion of connective objects and anti-connective objects but in general for a general R you still have a T structure but it's not the derived category if it's hard anymore when your ring is not static. Say which kind of T structure in just in terms of the vanishing of chromol? Yeah exactly. And you use homological notation? I always use homological notation yes. Yes. Why do we require this? Some statements for some statements it's convenient to have a kind of reduction from a general animated ring to the static case namely it's pi zero and for this kind of reduction it's important to have this kind of control on connectivity. So once you have assumed there are limits and called limits this is under the usual categories or infinity categories the same that is Well if it's a triangulated sub-category closed under products and direct sums then yeah. Then to have the adjoint you need sometimes some centralized condition is it automatic? Yes. So like being generated by a set? Yeah it's automatic. It's automatic. One question? Yes. With condensed ring you mean condensed animated ring? Yeah I made that convention maybe only in words but yes exactly. So from now on a ring is a static ring an animated ring is a ring. Okay Ofer let's let another one have a chance first. It's the analog of the I plus inside that. Indeed it is. Indeed it is yes. Ofer? No just to make sure. So it's one and two implies that the left doesn't exist. Okay Oh right I forgot to say what a map is so a map of analytic rings. Sir I need to hear what you said. So the condensed ring is an animated or always an animated one. Yeah it is just a map of condensed rings such that so it's just a condition if M lies in D of S then the restriction of scalars of M should lie in D of R so along R to S yeah I wrote it a little funny but I hope the meaning is clear. So if you have an object in D of S triangle which happens to lie in D of S then when you restrict it to an R triangle module it should lie in D of R. Okay so I'll make some remarks so there's always a T structure on D of R and in fact it's quite naive so the connective part is just the intersection of the connective part for the enveloping ring and same with the anti-connective part so you can check everything in this potentially more familiar category here so it's actually Z graded not just positively graded the modules are Z graded yes the ring is positively graded but the modules you are allowed to be Z graded Indeed Indeed and in particular you get an abelian category D of R the heart of the T structure which again is just a D of R intersect and actually this abelian category also determines the analytic ring structure so I can also say that D of R is giving an analytic ring structure on R triangle and there's actually an equivalent axiomatics just at the abelian level so I could instead say that I give a condensed ring and an abelian subcategory of the heart of D of R triangle satisfying certain axioms Yes Sorry for the definition of an analytic ring I'm just trying to understand why in what sense is it analytic yeah so that's something I can't answer right now it'll come when we discuss examples but the motivation was the simple thing I said that we want tensor products to be completed and okay yes Robert Can I draw a heart triangle if I want to just remember the category of a I forgot an axiom sorry you just reminded me because the answer to your question is no because of this axiom sorry I forgot to require that the unit should be complete the ring itself should be complete then why can't I draw the heart triangle well you yeah and then you need some extra structure on D of R yeah yeah that's still not enough because I'm doing the animated context and not the infinity context if I remember yeah then that's enough yeah yeah yeah yep okay so that's another perspective is you were just giving an abelian category of modules there's also a third perspective which is useful so to understand what an analytic ring structure is this is very abstract and it's talking about big categories and stuff but for a light profile I said I wasn't going to say light as we can consider the free module so it's denoted R bracket S and what is it by definition you take the free module string and then you just complete it so put it in the there via the left adjoint and these generate D of R greater than or equal to zero under co-limits so those are kind of your basic building blocks your basic generating objects and again there's another equivalent axiomatics which takes as the second data in the pair not the category full subcategory DR just the collection of free modules on profite sets objects in D of R triangle so to gain intuition about what this thing can kind of look like it's useful to think in general it's not in the heart in basically all examples it is but in the general theory it's not so think so intuition so this R triangle bracket S is kind of well it's just R linear combinations of points in S kind of completely intuitively finite R linear combinations of points in S but you can think of it as space of R linear combinations of Dirac measures hey Robert I did something for you and then this RS is some completion so that's a bigger space of measures so again an analytic ring structure can also be thought in terms of specifying some space of measures on a profite set and what is the role of this space of measures so the role so an M let's say in the heart for simplicity lies in in DR heart if and only if for all maps from R triangle S to M of R triangle modules there exists a unique extension along R bracket S or in other words if F is kind of a function from your profite set to your module which is some kind of linear algebra object with a topology say and mu is one of these kinds of measures that you're allowing then we get a well defined you could call it the integral of this function along the sorry the integral over S of the function I don't know D mu you can pair them to get you can pair the function and the measure to get the target module so this is explaining some sense in which this is this behaves like a completeness condition it's complete enough that you can do non-trivial integrals against certain classes of measures which you specify as part of the data you could say yes no even this one isn't and that's because we did this light restriction yeah so we'll have to get into that yes it is omega one compactly generated yes no I don't think so yes well I wasn't claiming there exists a unique extension I was claiming this condition is equivalent to this condition so were you saying why if this lies here does there exist this unique extension yeah so that's because basically just by left adjointness it comes from unraveling the definitions the question was which one is only the one compactly generated the big one or the small one neither sorry both the omega one yeah both are okay so I don't think I'm going to have time to get to examples which is rather unfortunate but I don't know maybe Peter will we'll see what Peter plans for Friday be nice to talk about some examples but instead I think I'll probably finish with a discussion of co-limits in the category of analytic rings and in particular I want to talk about push-outs because this is the crucial thing which is supposed to give completed tensor products which correspond to geometrically good fiber products so where am I here sorry oh yeah so one of the things we prove is that it comes for free yeah I mean you have to I mean this is I mean make no mistake in the maps you have a map of you have a map of animated rings from the R triangle to S triangle but then it turns out whatever the linear algebra operations you might expect to like symmetric powers and so on will sort of automatically go through yeah that's not obvious by any means yeah that's right so that's the most important functor is the left adjoint to the thing that was in the definition that's a very good point so there's some things I'm not mentioning like that a D of R is actually symmetric manoidal and this completion functor is a symmetric manoidal functor and these pullbacks the left adjoints we were talking about are symmetric manoidal so these are the things that and they preserve the subcategory geoport well by definition it's defined to be the left adjoint to this restricted functor yeah but it is not true that if you do the left adjoint on the level of these envelopes that it necessarily preserves the category you have to complete at the end so again it's kind of a completed tensor in this base change here um thanks for the question okay so so co-limits and analytic rings um so uh so so this filtered co-limits or more generally sifted co-limits I'm sorry oh the usual notion so based on finiteness finiteness I mean alif not filtered yeah I mean indeed one could imagine it might be important but when I say this then there's no discrepancy I mean there's no ambiguity um so if you have filtered co-limit of r i then the underlying animated ring is just the filtered co-limit of the underlying things um and also the free modules are similarly described is just the filtered co-limit of the free modules on the sms um so that's rather naïve um and what's kind of left is pushouts and this is more interesting so pushouts so again we have maps of analytic rings I'll call them a, a and b um I'll write the pushout as a relative tensor product just because then the derived category of the pushout can be more or less immediately described so I'm not talking about the first point in the data but just the second point um uh so abstractly this category will be the same thing will actually be a full subcategory of uh you take the pushout in sorry in condensed rings uh and then it's the full subcategory such that the underlying uh a triangle module lies in in da and the underlying uh b triangle module lies in db um but but this uh but caution uh so a triangle tensor k triangle b triangle uh da tensor kb is not an analytic ring so it it satisfies 1 through 3 but not 4 so it's almost an analytic ring the only thing is that the unit object that the underlying ring is not complete but then you fix that by applying a completion procedure to fix this uh apply you can still prove there's a left adjoint uh to da tensor kb sitting inside da triangle tensor k triangle b triangle so I think you're using d in two ways here so just simply d here you mean a direct category of a tensor d as a ring in this one when you write it here it's also part of the definition of an analytic ring that's true so let me make a remark to reconcile this there's a trivial example of an analytic ring structure on any condensed ring which is that you take d of a to be equal to all of d of a triangle and with this interpretation the notations are completely consistent so you could call that analytic ring you could call that analytic ring a triangle it's just the um so every thing can be viewed as an analytic ring with kind of trivial analytic ring structure or maximal analytic ring structure everything is complete and with that in mind then there's actually no conflict in the this is a different this is a different thing you put down here which is take uh so you have a an analytic ring so it has a subcategory dk which is part of the data you could take dk tensor dp that's the integral category and that would be a different thing than actually it's the same so um okay uh what next um oh question oh I'm going to call on the person who raised his hand first sorry just the same as the tensor product of the categories oh that was already asked and answered yeah over okay do you change the ring when you apply completion you change you change the the simplification ring anyway you apply the completion in the category d and then you want to get another simplification ring yes we have to prove that it's not obvious but yes so there's a so yeah so then when you apply that completion procedure the category stays the same but then this becomes completed and also I should make a remark that in complete generality it can be rather difficult to understand this completion process you kind of have to iterate applying the completion for a and the completion for b sandwiching them between each other do it countably many times take a co-limit like abstractly that's the formula for this completion procedure here now in practice it turns out you can calculate it and this is one of the points uh in practice I don't think I have time to discuss examples today but this completion procedure which replaces this by the true underlying ring of the push-out in analytic rings it produces the geometrically correct completed tensor products in analytic geometry um okay so maybe there's a question from zoom yes is the condition on the probinus still necessary or did you show that it is always satisfied it's always satisfied in this using this light condensed set framework it's actually always satisfied it doesn't matter um so maybe okay maybe I'll start to talk about examples so I risk kind of getting cut off in the middle of an explanation but I feel like it's just too dry without well I won't get very far okay let's let's try it let's try um so I want to talk about maybe solid analytic rings um this will relate to attic spaces or hoober pairs um so it's kind of going to be a non-archimedian condition so so I mentioned that if you have an analytic ring and we haven't talked about how to produce them yet but if you have one then it's nice to look at these free modules and profanite sets to get an idea about what's going on what spaces of measures do you are you actually looking at here and I also said that with a basic example of a profanite set well besides the point was this n union infinity classifying convergent sequences so but um in this linear case it's natural to consider the following so given an analytic ring r it's natural to consider what you could call I guess space of measures on the natural numbers and I don't mean the free module on the discrete thing but what I mean is you take the free module on this sequence space and then you mod out by infinity so this in some sense classifies null sequences uh in our modules put up there too and it turns out it's not hard to show that um addition on n induces a ring structure on uh on this m r n um and as a ring it kind of sits in between two rather extreme options so maybe maybe you want to think of this as t to the n for the purposes of this kind of discussion um so it's sitting somewhere in between the polynomial algebra and the power series algebra over your ring r um as you could imagine for something like a space of null sequences right uh or sequences with some gross growth condition I mean it's really dual to null sequences it's maybe some kind of non-archimedean condition um so geometrically speaking we have the affine line and we have some version of the formal neighborhood of the origin and then we have something that sits somewhere in between right um and now I'm going to single out a condition which is kind of a non-archimedean condition that morally speaking will mean that this guy uh lies inside the open unit disk of radius one um but formally so let's say definition if um if you if it just avoids the the point one on the affine line and the way you express that is by saying that if you do this you get zero but since you're quotient by the constant r infinity is just the the ah okay this is the home yeah that's just r and then but you know and then it's r and union infinity by the inclusion of the point infinity so r and union infinity is the free in this r the free r module on this affine line yes viewed as a condensed object no no it's not condensed sorry is that solid in what is that solid or z or I mean this is the I've so far I've just said this definition right so you I mean I'm in this sense but just a second um okay so there's an interpretation of this which is well if you have this and it's actually equivalent then you get a measure so to speak uh so t minus one has to you know multiplication by t minus one has to kill so if you have any if you have any anything here there has to be a pre-image under multiplication by t minus one so there this means you get some measure here such that t minus one times mu is equal to the unit object in this ring m r n which is kind of the sequence one zero zero zero zero zero zero um and if you think about what this means thinking about this uh measure space sitting between polynomials and power series this corresponds to kind of sum over n t to the n uh that's at the very least what it maps to in the formal power series ring um but on the other hand this measure space as I said classifies null sequences um and you know so the and this measure pairs with a null sequence if you have a null sequence in an r module m and a measure I said you can pair the two things to get a function and the way it works is you take your null sequence and you get the two coefficients here um and uh yeah you set t equal to one um so what this the interpretation of this is that every null sequence you kind of have to work it out but the interpretation is that every null sequence is summable um uh which is kind of classic uh non-archimedian condition so solid is kind of one way of saying non-archimedian in this context but it's kind of fun that geometrically you can think of it as a local location of a something between zero and the whole affine line um and maybe I will state the theorem ah yes no okay so theorem yes the multiplication closed in mr a multiplication closed I mean it's a ring I don't know it good as you constructed I guess it's constructed some it's not the best okay yeah okay yeah yeah yeah yeah but in the universal case z with the trivial analytic ring structure it lives in degree zero there's no I mean and also that's a summoned it's really yeah it is in the universal case it is and to produce a ring structure I can work in the universal case it's a ring and then by base change it's a ring in whatever sense you want in whatever other context I yeah okay right so theorem so there exists a solid analytic ring so it's called z solid and the underlying condensed ring is just the usual integer z kind of discrete topology and then well the drive category is something which I'll discuss in more detail such that an analytic ring is solid if and only if there exists a necessarily unique map from z solid to r and more over you can actually understand this analytic ring very very explicitly so there's some nice results on linear algebra in this basic category so the first thing is that you well the first thing you want to ask is what are the free modules on pro finite sets so let's say s is some countable inverse limit of finite sets then this is just the inverse limit of the free module on the finite set which is just a finite direct sum of copies of z and also this is abstractly isomorphic to some countable product of copies of z countably infinite unless of course s is itself a finite set what does that say next to the there exists is that it says necessarily unique yeah yes so the second thing is that oops right so these remember I said that these guys always generate the category these products generate the category but moreover these guys here are compact and projective generators of the well let's say of the heart but they live in degree zero so another thing you have is that the derived category here is just the usual derived category of its heart so it's enough to talk about the belian category and also these are flat with respect to the tensor product the completed tensor product which I kind of mentioned exists so here's another point where we use the lightness because Sasha Fimo proved that this is not hold if you increase the cardinalities on the profile sets and moreover you can calculate tensor products rather easily so the tensor product of this with this over z solid is just have the infinite distributive law so to speak that makes for very easy calculations and sorry so just asking the the radio is not enough really it's really countable right so the the collection of finitely presented objects in d of z heart which generates it under filtered co-limits is a belian and closed under extensions and every finitely presented M has a resolution a free resolution you could say by product or copies of z's of length at most two meaning a complex where there's three non-trivial terms and two non-trivial maps so this kind of gives you a very good hold on calculations in this category very very explicit so note that you can interpret this sort of as saying that z solid behaves like a regular ring of dimension two so z is a regular ring of dimension one we somehow picked up an extra dimension and that can be attributed to the non-house store phenomena that you see in solid a belian groups but in all things told you get a very good handle on this category so I think that's the only example I have time to discuss and thank you for your attention right there's a single generator actually this is kind of a general phenomenon because the free module on the canter set will always will always generate yeah yes yeah that's something you have to prove and it's not obvious thank you yeah yes video recordings yes lecture notes we're kind of trying to write a book at the same time as we give these lectures and it's not clear to what extent we'll be releasing things sequentially or all at once at some point so in terms of major application of this theory is it possible to describe it in 1, 2, 3, etc keep me motivated no I'm sorry what can I say I don't know do you like Riemann-Rach of course I like Riemann-Rach it proves the most general possible Riemann-Rach theorems in analytic geometry so it crucially uses these derived categories and the fluidity of the formalism and so on what's the notion of the right-hand triangle Peter told me Hoover uses it had to find something yes oh for general topology yeah I mean there are some more subtle properties that tend only to hold for general topology maybe not but once you start talking about topological groups and so on maybe yeah yeah I just strictly prefer the light setup to the other one with the unboundedness is there any pace where I would actually want to go back to that one well it's at the very least psychologically comforting when you have a strong limit cardinal that you get like compactly generated derived categories and so on turns out it's not so important necessarily in practice but it's kind of maybe quite important psychologically but then okay that's just a larger cardinality bound why you would go all the way it's just to avoid choosing a cardinality bound and so you can say all compact house-door spaces are profiling or condensed sets but there's no real reason necessarily infinity algebras what are those I don't understand the question what is the I don't know this term infinite oh infinity everything works the same except it's a bit easier if you use infinity algebras the people who are comfortable with the infinity algebras are not laughing so you can do a version of this theory of course with e1 and e2 but there's something very special about infinity or animated commutative which is that co-products are the same as relative tensor products that's very nice and moving to realms where that's broken can be a real pain okay so that's it thank you