Right, so it's me again, who'd have thunk it? Okay, this talk is about security issues arising in OpenJDK. I've called it securing a moving target. That's the aspect of OpenJDK I think is interesting to talk about in terms of security. The subtitle is, what could possibly go wrong? Actually, I'd read that another way. What are the things that might possibly cause problems that are specific to the nature of OpenJDK, the class libraries, the JVM, that wouldn't happen in many other types of applications? That's really the thing I'm interested in. So, I thought when I had talked about security, the motivation for this was actually a B-Sides conference that a friend was involved in a new castle, so I gave a brief version of this talk, but I thought it was really interesting to talk about. It's really motivated by things that happened before I got into the vulnerability group, and that's only compounded since with the experiences of working with all the other people who were involved in that group. Up until we had the vulnerability group, all I'd ever seen were exploits, sorry, were patches. I had no idea what the exploits were, and there were these weird changes that obviously fixed something, but what the significance and importance of it was was really opaque. And then our security expert, Martin Blauer, who's just an amazing expert in security, both in penetrative testing and also in defensive security, came along, and with his help, when we were trying to look at some backpots, so we backpotted to eight and we were wondering maybe should they go into seven? We thought, well, we'd better try and create an exploit to use this patch and see if maybe that exploit would work in seven. And we recreated an exploit. He knew lots about how you could hack your way into things, and I just knew a bit about the JVM, so it was mostly his work. And it was absolutely mind-boggling to see how a little glitch in something in the JDK code could give you an opportunity to open up a big hole and then all sorts of havoc could happen. So that was just really interesting. And maybe think what a weird mindset you have to have to be looking at a detail of the way something works and then to think about a way you might work your way around that and achieve some completely unrelated goal that breaks things open and then it's game over. So it's quite interesting to think about security, and I think it's good for people to understand about security when they're developing code. Of course, there's lots of reasons why you should not talk about security. I mean, there's no benefit in obscurity in not having it visible, but one of the things that the vulnerability group and this has gone historically before that, what we don't do is ever publish exploits. And in fact, when we test a patch and we create a reproducer to make sure a patch that's going into a security release is actually working, we have a before and after reproducer, and we don't actually publish those either. So we're very careful about making fuss about the things that are going in that are security patches. But you can go and look at the patches and you could do what Martin and I did, which is work back and think, how could I do something with this? And I'm not going to go into specific exploits. I'm not even going to talk about the way you could design them. That also will all your fun. You can go and do that. And I suggest you do. And if you read up about security holes and the way they work, there'll be lots of things you can find to go and do it. What I really want to talk about is how OpenJDK gives some unusual opportunities for security holes to arise that are really germane to OpenJDK to the class libraries and the JVM. So what's the problem with security? What's the security breach? Well, there's lots of different types of things. Here's a few lists of things that can go wrong. You can have a desired denial of service. Something happens in the application. If you feed it the right data, it goes into a loop that's either infinite or potentially infinite because it's going to run for 64 bits worth of computation or something. You can drive a program into a program crash in some circumstances, and that's the security hole. There's more interesting sort of malicious activity, which is where it's possible for data to be observed. You can have something that's actually a direct exposure of data because of just buggy code handing something out that shouldn't be seen. But there's also indirect exposure of data with what's called a COVID channel. You feed some input into a program, make it do certain things, and then next time you invoke some other operation, you get a result out that's conditioned by what you've done before. So certain actions can reveal other information about another action of the program does, and you can drive a program to reveal information that wasn't really meant to be intended. That's what a COVID channel is. It's where some actions can side-effect other ones, and you can understand information about what's going on in the program or data. You can actually trigger operations in the same sort of way. You can invoke some behavior by pushing a program in a given direction and end up executing something that wasn't meant to happen because of the bug in the code. But you can also have a COVID channel where you set the conditions up by feeding the program, making it run a certain way, and then another operation actually will go down a different path to the one that's expected. So that's another way where a COVID channel can actually execute things you don't expect. The amazing thing that I saw talking to Martin was this thing called return-oriented programming. You can actually execute unforeseen operations in a program without even having to jit in there. So one of the things that happens when you're doing a graph row of flow, you used to inject code and return into it and start executing stuff, and then the security, that whole was plugged by making stacks non-executable. But one thing you can do is inject stuff on the stack which has return addresses in it that return somewhere to the end of a bit of method code, and that method code can execute an instruction, and then it returns back to where you just jumped from. And then you can do another return to another bit of code with the right address left below that on the stack, and then the load of return addresses on the stack that you've overflowed, and you end up executing instructions for like half a dozen different methods, and you put together a recipe for doing something that gives you access to something that then opens up something else. You can make a jump to somewhere. You can drive the program down a path that wasn't expected. So even without a jit in there, you can actually assemble a sequence of instructions that do what you want. Of course, that's harder to do with jit in code, but not all the code in the JVN, compile C code in there. Now, I'm not interested really in the obvious game over cases where you've got access to the command line or to the class path, or you can load an agent. They're just, you know, not very interesting. The interesting attacks are things that rely on escalation. This is where these little funny weird behaviors in the program can actually end up giving you access to a tiny little hole, and then most of the things escalate that by getting the hooks in, getting a chance to execute something or do something, and then you can actually download a security exploit kit that base you hammer in, and you open up the whole program. So that's the sort of scenarios that are interesting, and where are those sort of things possible to happen in OpenJDK? Now, I'm not there for going to look at things like specter meltdown. These things can happen in any program, buffer overflows. JIT in code makes it a bit hard to exploit things because the code isn't always the same and it's not always in the same place, but the VM doesn't, the VM compile code, you can use all the usual tricks for that. I'm really interested in the things that are specific to the design implementation and what sort of attack surface OpenJDK presents that's unusual that's different from other programs. So what have we got to secure? What is OpenJDK? Well, it's a language implementation, so you start with something that's Turing complete, it's got a file network OK, it's got a presence API, so yeah, you can do anything with it. So there is potentially a big security problem there, this thing is this general purpose programming language, at least it's got static typing. But actually it's a managed runtime, it exposes and manages all those functions and although there are things that you would normally have an operating system do it, it sort of does for you, it presents them in a very controlled way, thread management, memory management, and so on. So it's also a layered managed runtime and the application can do certain things but only through the, some of those things are only available through JDK APIs, the core language and the core libraries and that's all in terms of Java code and there are only certain things that Java code can do, you can't handle raw pointers or whatever. That Java code gets compiled to equivalent machine code and as long as it is equivalent, well then that also has the same safety guarantees and it bottoms out at a layer where you go into native code into the JVM library methods and implement JVM APIs and so on. So there's a nice clean boundary between the stuff that's in Java and that Java can do and also this other code that's written in C in the JVM that has access to things like metadata, the JIT, the GC, the interpreter, all this stuff that's doing the more hairy stuff with a nice clean divide between them and they're really living separate worlds with a fairly clear interface between them. And that's not true in other JVMs, the Java and Java virtual machine like Jix or Maxine or Substrate, the code that's in there that implements the VM stuff has been pre-compiled into an image from Java code but it could just be overwritten and replaced because anything's up for grabs in being recompiled at runtime in a Java and Java machine. There isn't this division where the C code can never be replaced and it just does that job and the Java jittered code only has certain access paths into it. So that's the sort of layering between application JDK runtime and JVM and there's a separation of powers that goes with that. There's a trust sort of model. The app code is the least trusted and in particular the JDK core runtime modules are the most trusted. The module system has really made a much more graded leveling of trust and access to behaviors that are more dangerous and more risky. So the module system is very important in firming up this sort of layered security model and separation of powers. In the very core classes, the stuff that allows modules to communicate via a sort of shared sequence model but that's very constrained so that there's only certain accesses. There's a bit of a sort of spanner in the works there that a JVMTI Java agent can get in there and do things and has a few superpowers that can break this up but that's obviously you can tie down agents so they're only accessible in certain ways. And then the most trusted is the JVM code. It's got the ability to access the operating system. There's actually some native code outside of libJVM that uses system calls but there's also all the stuff most of it is actually encapsulated in libJVM, the stuff that's doing the more hairy things. And then there's the actual runtime stubs that the jitted code calls so there's also other ways into this underlying behaviors. So it's not a completely clear defined but it's done in several places and some of it is via jitted codes so it's not immediately evident where all the access to this capability is. And then there's JVMTI native agents that also another spanner in the works at that level where it's extensible and things can go wrong but you have to control that. So what are the exploit opportunities that this gives that are sort of germane to this setup? So I've picked four things where things could go wrong and I'll just talk about them. The type system, speculative compilation, methanals and the old favorite serialization, the security nightmare of choice. So type safety is really powerful and the structuring of type modules, packages and type access models is a good way of organizing things but the type safety has to be done by verification. Some of it offline, Java C compiles programs into a byte code which is quite tightly constrained and that means you can only actually get certain types of things into the JVM that are limited in what they're able to express and that already starts you off from a base where you can then check things. There's a quick online verification of byte code at class load and then that's followed up by further type checking at link resolve time checking across from one method to a call method and also at compile time a method tree is type checked and there's type consistency. These all rely on each other in a hierarchy though and there's options that things checked at one point don't need to be checked again later on. And this is what I called a moving target. This is actually difficult because the unit of program delivery is class by class. So the JVM is reading in byte code and building up its own internal model of the class base and the type security across that is being patched as you go along. So there's information you have about which types are in the runtime and what sort of accesses are valid and that's always subject to revision because classes can be overridden. So assumptions you make about what's type safe at one point you may actually have to revise or extend as you load more classes into the code base. So it's definitely a moving target there. It's also complicated by the class loader model. Classes can be loaded from the file system the network from different places. It's possible to generate classes actually internally using code generators and class loaders can do that. It's also possible for class loaders to delegate to each other. One class loader loads from another class loader and that can be switched around at runtime. It doesn't have to be a static delegation network. So there's all sorts of room for code to come flying at the JVM from loads of different places. It's got to make sure it has a consistent view of the type model while all this is going on. Could an application benefit from that? Could you somewhere introduce a disparity between the checks that happen at verification time and then a check that happens when a called method is checked against an actually loaded class and the signatures are checked and so on? Could that happen between link resolve time and then the types that are maintained at compile time? You might try and fiddle this by, say, breaking class to class linkage by dropping a class loader and then trying to get classes loaded from somewhere else and see if you could sneak a different class in. Now, the JVM and the JDK should never let this happen and when types are loaded, there's a lot of effort to go on to to make sure that the classes that are used and verified against each other at verification time at bytecode verification time are the same suite of classes that are used when the interpreter is doing link resolution and the same classes that are used at compile time. So that should never happen. But that's an area where this moving class base and this ability for classes to come and go is something that needs a lot of work to make that happen. Speculative compilation, there's an interesting feature. This is the point where the JVM compiles code on the basis of the current knowledge of the type system and how that's influencing execution. So for example, you can also have things which not just do with types like hot branches and cold branches, the JVM will just cut out that code from a compile and compile code that assumes you're only going to take a certain path.  You don't just carry on using that code and end up having a case that's the wrong case. The same thing if you do use type profiling, you can assume that a call which has a foo argument is always going to get a foo bar. So you throw away the case handling for class foo and you always assume a foo bar. If you deoptimize that and don't recompile the code and don't patch the code and make sure you get a new version, you could end up processing one type as though it's another type and that's game over because then you can spoof types and do all sorts of terrible things. And similarly with invoke virtual versus invoke direct, there's a mechanism there to allow you to make a direct call when there's only one implementation of a virtual method call. That should be bullet proof. It shouldn't be possible for you ever to go and invoke a method on a class of one type when it's really another type. There's something that's done in the JVM is actually setting up an opportunity to go wrong and there has to be a lot of careful analysis to make sure that it actually doesn't go wrong. And we don't think it does, but obviously if you're looking for somewhere where you want to pry your screwdriver in and up and up a hole, that's an area that's interesting. It comes from the nature of OpenJDK. Method handles were the most recent feature to introduce more bugs than anything else really in recent times. It's not surprising because if you think about what was being done to the language, it was a mechanism to allow indirect invocation of a behavior. So before this, if you wanted to invoke a method, it was an invoke in certain bytecode that named the method and the type that it was appropriate to and the invoke was either virtual or direct or a special for a constructor or whatever. But it was actually a known quantity. Here it's possible to invoke a method that's been handed from somewhere else. The method handle is being constructed and the reference to the method is indirect. Now one of the differences about that is that access verification happens at method handle create time. It doesn't happen at the point where the method handle is invoked. So there's a different model for how you secure access to methods with method handles. So it's quite easy to think to hand out a handle to some code that shouldn't actually be getting it. There's a very obvious way for that to go wrong. But there's also some of the details of how method handle works. They're able to be called either with an exact signature in which case you have to have exact matching types and argument types or an inexact signature where certain operations can happen during the call that are performed by the runtime to massage arguments, make sure they're the right type and so on and then eventually pass them through to the target method handle. And you can do things like argument shuffles and so on. This was all implemented in the JVM initially and it was a very, very big perturbation to the JVM because it was such a lot of code was needed and it was later re-implemented using byte code that was generated from JDK instances method handle classes in the JDK and that made it much more secure and it introduced a lot of bugs and it certainly meant that ever since then really big changes to the JVM have been absolutely avoided with trying to do everything as very conservative as possible approach to changing JVM functionality because the lesson from this was that a really major structural change to the JVM was going to have problems for a long, long time. And then of course the serialization saved the best to last. It's the exploit trap that keeps on giving. It's a very old feature. It's always been responsible for bugs there have been loads of exploits. The fundamental problem is that when you serialize an object to persistent storage and you deserialize it or you deserialize it or you deserialize and deserialize through memory you're basically creating an object from scratch from a saved version of it and you're installing all the fields bypassing the normal construction process and you're taking whatever you get out of the deserialization stream so there's lots of opportunities to spoof things there and to give you data and to get things snuck into an object in a way where it's not validated and it's even worse because it's possible to provide custom serializers and deserializers so there's always room for new bugs by people building their own serialization and deserialization frameworks. Andrew will chase one of these for weeks and weeks and weeks a fast serialization library it was too fast. So this one's... I guess I don't know if this is ever good can we deprecate serialization? I'm gonna go. Yeah, yeah, yeah. So there's just four different parts of the way OpenJDK works where you can see there's all sorts of complexity it's really specific to this type of managed runtime and if you can go away and find a nice little security hole there and get a reproducer, send it to us and we'll try and fix it. Don't sell it to some bad guy, please. Right, do we have time for questions? Hey, great, okay. Is anybody going to be first? Hey, Remy. I think in your list you have forgotten the way the security works by walking the stack. Yes. Which is a very, very weird way to do things. Yes, when you're actually verifying something trying to create a method handle it involves looking up the stack to see who's trying to do it. So that's... I suppose it works. So yeah, that's an important detail, thank you. Hey, Ian. Intel have been proposing things like SCADs that separate control and data stacks and CET to kind of verify that returns are going to where they came from. And of course these are ABI changes so they'll need support in the JDK. Is this anything you're looking at at all? I just found out of this from Martin I thought it would be a really neat thing to talk about. I have no idea what people are trying to do to fix that problem. So it sounds interesting and I'd be interested to look at it. I think Martin would probably feel that better than me. He's really good. Yeah, I'm sure he'd love that stuff. It would be most interesting to see what you had to do to the JITs to make that stuff work. Yeah? Also heading to the list, now there is a certain... a number of projects out there that are trying to exploit... trying to leverage from persisting compile code in various ways. There's one from IBM, there's one that Azul is doing and then there's also... in the upstream there's also a native image. So wherever you save a native image and it's being loaded later on there's always... at this point it passes the verifier and you just run native code. So I guess the premises there is that whoever provides this native image file network stream needs to ensure its authenticity but maybe it's often forgotten. Yeah, that's a really good point. So this is true for class data sharing as well that something could... that could have errors in it, it could be tampered with. There's room for things to go wrong there and the grail native images there's nothing you can possibly check. It's a binary that you just run but you build binaries and trust them and run them in other languages as well. I guess there's the problem... the question of is the nature of how that binary is constructed or shared libraries constructed such that you have other trust issues that you wouldn't have with say a compiled C program. I'm not sure what the answer to that is but it's an interesting question. I think you do and this would be a good point for me to point out that back in the days of GCJ we made a tree of cryptographic checksums that were used to match up the pre-compiled program with the bytecode files. Well that would work for class data sharing where you've got separate method code with grail, it's a great big munged optimised image. It's heavily optimised. So that's not an approach that you could really use. I suppose you could check some of the thing to make sure something hadn't tampered with it when you reloaded it but knowing the integrity of all the parts is not really a it's a non-starter. Yeah, but that's true also of a compiled optimised C program. It's not unusual in that regard. Yeah, you have to trust the producer. Yeah, you have to trust the computer. Yeah, you know, these computers. I don't trust it. I'm a Luddite. Anyone else or are we done? Thank you. All right, thank you.


Hello there, it's Sandy Allnock, artist and crafter here on YouTube with an exploration of the Pantone Color of the Year Classic Blue. Pantone is one of many companies that chooses a trend color for the year and Pantone shows Classic Blue 4052. Notice that there's a bunch of different blues on this one screen and they have a bunch of different examples of blues used in context and they're all different blues but they're kind of a medium to dark intense kind of blue. And I went through a huge exercise to try to find the blue that's the the base color for all of this and long long long story but it's over on Ellen Hudson's channel and that's also the channel where you can get this little chart that you can make for yourself of different blues with a discussion of warm and cool blues. But today on this channel I'm going to be talking about the palette explorations from Pantone. They came up with five different colorways. These are not meant as blending colors, they're meant as colorways, a colorway is when you select a whole bunch of elements whether it's for your living room to have accent colors or on a card where you're going to choose different colors for different portions of your image and I made these charts for myself from their colors in four different mediums watercolor polychromos pencils prismacolor pencils and Copics and before I get started don't don't get excited about this I'm not recommending anyone make these charts the watercolor one was a pain in the drain to do because the ink bled all over the place so half my colors don't really look like what they ought to look like because they have sort of ink seeping into them but there you go I tried it because a lot of people have wanted to know why I don't have hex charts for watercolor and this is why it's just a pain in the drain oh but on my blog you can see jpegs of each of my charts with all the colors in them nice and readable they won't be my hand written ones I took photographs and put text on them that you can actually read so that you can choose from these colors and not have to make your own charts but there is a downloadable single chart with just empty spaces so you can put your own colorways in there if you want with whatever your mediums are you choose but I don't recommend doing that and you'll hear why as I talk about it and I colored all of mine in these different mediums because I wanted to have them handy I'm gonna put them in a notebook that I access all the time so that they're right in front of me and I remember to use some of these colorways I get stuck in a rut and I use the same colorways all the time and in order to break out of that and try doing something different in the making of this video I already learned something new and came up with some new things that I'm kind of excited about so I'll just put that out there for you so you know why I'm doing this as opposed to yet having another color chart because no one needs this chart yes it's pretty just print out mine so that you can use them and do what I'm doing which is choosing the exotic tastes colorway and choose some colors to use on your next project so I'm gonna start with watercoloring this guy this cute little rocket from Ellen Hudson I just love coloring this rocket there's just something about it and I have this Prussian blue which is the color that I have decided is the main blue that's just my personal opinion other people will have their own opinions and I'm painting in rather thick paint this first portion and leaving my highlight strips on either side and it's not like mass tone super dry paint but it's really thick and then I can go in with just water over top of those highlight areas and let them slowly blend in on the edges of them if they're too dry you'll get hard edges and they'll just never blend but I'm adding a little bit more down here at the bottom because I wanted to soften out those bottom edges and bring up the the bottom edge of that that little blend down there so just be careful when you're doing it not to let it dry too much and keep that paint wet enough that it'll move but not so wet that you lose the highlights so I did a little matching strip down there at the bottom section and another color from the exotic tastes colorways is quin gold which used to be in my palette and isn't anymore and I realized man I miss it because I love the range you can get from it you get that really intense orangey brown color in the center to a super pale yellow I mean it just has a really broad range of really pretty colors so who knows that might come back to my palette someday and then there's this Bordeaux I just suddenly discovered Bordeaux when I was doing this that is one of the things you learn from trying different colors I was trying to match particular colors in this wacko colorway that Pantone suggested and I don't agree with their color selections they're not colors I normally would use together but it got me to pull out my dot card so I could swatch a little bit of that Bordeaux for my chart and then for this this little bit of fire and my little my little eyeballs got all excited and I went in order to tube of Bordeaux so that I could have it and play with it and paint with it because it's a really pretty color I didn't even realize that until this moment so that's one of the things that you can get out of using wacko color combinations that you just you don't know what's going to happen if you do it but I recommend it and there are all kinds of trend websites and trend color books and stuff when I went to the paint store to get some paint chips I picked up all their color trend books so I'm going to try using some of those color combinations this year so you might see those here on my channel in the future because you know if I'm going to find a color like Bordeaux and get excited about it then maybe I'll find other things too if I start working with other color combinations that are suggested elsewhere so that was watercolor this is watercolor pencil and notice of course that watercolor pencil generally comes out lighter than watercolor you can't mass tone watercolor pencil in one go you have to add it slowly and build it up which for a lot of people is really much safer than going in with really strong color at the beginning so that can be a good thing so I've got it all watercolored out and I let it dry completely before adding more pencil and now all of a sudden I'm back to that nice rich deep dark really intense blue and sometimes with when you go over something like this it's just the paper is primed to receive more color and sometimes I think it's just that now you're not seeing white paper through all of that color you're seeing the blue underneath so it just everything just starts to get darker as you put layer and layer on top of it you could also use other colors to make it darker that sort of thing but I just stuck with for the sake of simplicity using the same color and making it richer and darker this one is done in colored pencil on some desert storm cardstock and just letting the desert storm be the highlight that gets left behind and I'm using some blending solution and a blending stump to smooth out the color and intensify it so there's the finished watercolor version put it on a red card base which pulls out the red details in there from that Mordeaux color this is the watercolor pencil one after I got the colors enriched and the the blue background for that one really works nicely and then craft on craft makes a really nice simple card and then this last one is a Copic version that's over on the video that I made for Ellen Hudson so you can go check that one out and make yourself one of those classic blue charts that is a chart that you can make it's a much easier one to do than the ones that I showed you today but you can print out the ones that I showed you over on my blog and then you can have them to put in a reference notebook to give yourself ideas for the next time you run out of colors and need a new combination so which one of those color ways are your favorites which one should I try next leave a comment in the doobly-doo and I will see you again very very soon take care guys bye bye


I am interested in the latest in teaching, learning, and mobile computing. Is that so? Yes. I want to learn how iPads, tablets, laptops, and phones can be used in education. Noted. I think it would be cool to see how others are using digital tools in their classrooms. Good for you. I want to connect face-to-face with others who are passionate about teaching today's students. May I make a suggestion? Yes, please. You should go to Mobile Learning Experience 2012 in Phoenix, Arizona. What is that? It's a conference devoted to mobile learning and mobile tools in education. There will be educators from across the country and world. When is mobile learning experience? April 11, 12 and 13th, 2012. I will add it to your calendar. Thanks. Go to the website for mobile learning experience 2012.


Or is the IPO market dead? Just look at shares of Snap and Blue Apron. Kevin Schultz is the chairman of Triad Securities and joins me now on set. So Kevin, what do you say? Are the problems with Snap and Blue Apron just company-specific or indicative of broader problems in the IPO market? I think it's very indicative of what's happening in the world, not just IPOs here, but all over the world. And one of the big problems is Blue Apron and Snap are not valued correctly. They're valued in coming out with private equity in people that want their cash. And that's the big problem. So where's the next step? What's Uber really worth? We don't know. Well, and is that why Uber and Airbnb, these unicorns, have sort of waited and sat on the sidelines? Well, the reason why, and that's part of the problem of the IPO market, is they don't need to be public to get more funding. So if they're already, if they're not, if they're a private company and they need money, they're just going out to private equity, they're going out to endowments. Everyone's investing in these companies. So they're getting their billions of dollars and they're kind of creating whatever market cap they want. And you also say there are fewer banks with capital markets operations now than say 25 or 30 years ago. Oh, big time.  And you're probably under 2,000 now. So it's a big problem. I mean, a lot of consolidation, but there are a lot of small players that aren't able to stay in business because of the compliance that's in place. There are reports that Spotify is looking to list directly on an exchange, bypass the Wall Street banks all together. What does a potential move like that tell you about the IPO market? You know, if you have to go back to Google and where they had the auction, if you remember. So I know W.R. Hambrick and Mr. Hambrick were trying to bring auction back in and where that would come in and the people would kind of put it where they, you know, put their bids in where they wanted and that's how they would come. It wouldn't be banks making the prices. So I think that anything different might help if it works. Right now, what's going on is not working. And Hambrick, there's still big players in the IPO market. I wouldn't call them big.  The original, you know, Hambrick and Quist was taken over along with Robbie Stevens, Montgomery, all those firms are now consolidated into some of the big banks that you know. The SEC chair, Jay Clayton, he has said he wants to scale back regulation to encourage more IPOs. What measures should he be taking in your view? The first thing, and as in the article that I wrote and the symposium that went on, I mean, I really believe that Glass-Steagall is an important part of what's going on here. I really think you need the separation of the banks and the investment banks and people, everyone talked about it beforehand.  And parts of Dodd-Frank are very difficult to get through.  I'm not quite sure. I don't think that is. I think that's part of the reasons, but I think it's harder to get investors to get people to follow their stocks and the volume dries up. And all of a sudden, no one's following it and if they don't do well enough, then they move into oblivion. And then you talk about penny stock problems of what's going on, which gets to the other problem of who's gonna trade these stocks. All right, certainly a story we'll continue to follow. Kevin Schultz, thanks for coming by with us. Thank you very much.


with our discussion of the various important theorems concerning zeros of analytic functions. So what I described briefly at the end of the previous lecture was the so called open mapping theorem ok. So let me go ahead and try to give a proof of that and I must say that once you look at the proof of that you will see that from that proof you can also get the proof of the so called inverse function theorem ok. So we start like this you so the theorem let me state the theorem open mapping theorem so what does it say let F be an analytic function analytic or holomorphic defined of course defined and analytic on a domain T in the complex plane.  So in particular the image of F namely F of D is open in so this is the open mapping theorem it says that a non-constant analytic function non-constant holomorphic function carries open sets to open sets ok it is a very deep theorem and the proof of theorem of course uses the argument principle which is actually the residue theorem applied to the logarithmic derivative of a suitable function ok. So you know so let me so let me draw a diagram so let me tell you what the proof so let me go ahead with the proof so here is the complex plane this is the source complex plane C this is the z plane and here is if you want my domain D of course the way I have drawn it my domain D looks like a bounded domain mind you let me recall that a domain is an open connected subset ok it is a subset which is both open and which is connected of course the way I have drawn it it looks like a bounded domain bounded by this boundary curve I have just drawn it like that for simplicity but it do not look like this ok it need not be bounded at all ok and then I have this mapping W equal to Fz which takes any if I start with a point z0 then it will take it will map it to a complex value the values are taken in another copy of the complex plane which is called the W plane or the omega plane and well z0 goes to some W0 ok and what we want to show is that the image of any open set is open ok so what I am going to do is so the as I told you the point is so let me write that down let z0 be a point of D and W0 be equal to F of z0 so we are always going to see the whole point is we are going to think of values of a function as zeros of a suitable function ok so that is always the idea so values of so W0 is the value of F of z ok that should be translated as 0 W0 is the value of F of z at z equal to z0 that should be translated as z0 is a 0 of F of z-W0 that is how you should translate everything in terms of zeros ok and why do you translate everything in terms of zeros is because you can then apply the counting principle the argument principle which allows you to count the number of zeros ok so that is the whole point ok so thus so z0 is a 0 of F-F of z-W0 right but notice that F of z is analytic it is holomorphic and non-constant ok so F of z-W0 is also holomorphic it is also analytic it is also non-constant so since F is non-constant analytic F z-W0 is also non-constant analytic analytic on D ok and this is the whole point you have a non-constant analytic function and you have a 0 of that you know then the zeros of a non-constant analytic function are isolated ok that is the point that is why I made this observation to begin with that it is non-constant analytic ok and that since zeros are isolated it means that there is a disc surrounding the 0 z0 of this function such that in the disc inside the disc and on the boundary of the disc there are no other zeros of the function F-W0 ok. So so there exists a row positive such that such that F of z-W0 has no zeros in 0 strictly less than mod z-z0 less than or equal to row so the only 0 is at z equal to z0 ok and there are no zeros in this deleted closed disc right. So if I draw it in the diagram here so you have a disc D I mean you have the small disc centred at z0 radius row ok and perhaps this diagram is too small let me try to draw slightly bigger diagram so here is z0 z0 here is the disc centred at z0 radius row and in this disc of course this disc 0 the set of all points in the disc the set of all z such that mod z-z0 is less than or equal to row is of course contained in D of course you are looking at a disc inside D ok. I mean what is the theorem on isolation of zeros of an analytic function it says you take an analytic function which is not constant in on an open set given a 0 you can find a disc surrounding that 0 where there are no other zeros and this disc is of course in that open set on which the analytic function is defined therefore this disc is chosen inside D that you must remember. So this is because of the fact that the zeros of an analytic function are isolated ok and which if you go back and recall it is actually another way of saying the so called identity theorem which says that you know if you have non-isolated 0 then the only possibility is that the function is throughout 0 identically equal to 0 which means it becomes constant and that but that is not true it is we have assumed it is to the function to be a non-constant function ok. So also you know we have used this idea many times before if you take the function and restrict it to this boundary circle ok if you are in particular look at the modulus of the function of the boundary circle then that modulus will have a lower bound and an upper bound that is because mod of f-z-w0 will be a continuous real valued function on this boundary circle ok which is compact and a continuous real valued function which is compact a continuous real valued function defined on a compact connected set the image will be a closed interval ok. Therefore it will have a minimum value it will have a maximum value so since mod of f of z-w0 is continuous on the compact connected set mod z-z0 is equal to rho namely the boundary circle there exist a delta positive such that mod of f of z-w0 is greater than or equal delta for all z with mod z-z0 is equal to rho ok this is just the fact that f of z-w0 is analytic so mod f is continuous ok f of z-w0 is analytic function of z it is a homomorphic function of z so it is certainly continuous because analytic functions are continuous and then modulus of a continuous function is again continuous because you are composing the function with the mod function and mod function is continuous it is a composition of two functions so it is continuous and this is a continuous real valued function in fact it has non-negative real values because it is a mod and if you restrict it to this compact connected set the image will be again a compact connected subset of the real line so that will be a closed interval on the real line it will be a finite closed interval on the real line and the minimum value of the interval is exactly what I am calling as lambda and mind you the I am sorry as delta and this delta is positive delta is positive because the function does not vanish on the boundary circle ok the only place where it vanishes at the centre so only 0 it has ok so you have this now what you are going to do is do the following thing so you see see take any w in the target complex plane with the property that the distance from w to w0 is less than delta ok so from w0 you draw a disc ok centred at w0 radius delta and look at any w inside this disc ok what you must understand is that if you take a point if you start with the point zeta here on the boundary circle ok then the modulus of f the modulus of f of z-w0 at zeta which is mod f zeta-w0 that is greater than or equal to delta that will tell you that f zeta is going to lie outside because you see what is the assumption the assumption is you take if this zeta is on the boundary circle and for points on the boundary circle the function value-w0 mod is greater than or equal to delta so mod f zeta-w0 is greater than or equal to delta the distance of f zeta the value of f of z at zeta-w0 mod of that is greater than or equal to delta that means that f zeta goes outside this disc in particular what this tells you is that you know f of z f zeta cannot be equal to any w in this disc ok so let me write that down so for zeta with mod zeta-z0 is equal to rho the modulus of f of zeta-w is greater than 0 for any w with mod w-w0 lesser than delta ok this is a very simple observation but why this is so important is because you can define the following thing define n of w to be 1 by 2 pi i integral over mod z-z0 equal to rho of d log f of z-w0 I want you to understand this I mean this is in other words what is this I mean this is just 1 by 2 pi i integral over mod z-z0 equal to rho f of f dash of z by f of z-w tz this is what this that is a logarithmic derivative ok. First of all what I want you to know is that the what does the argument principle tell you the argument principle tells you that whenever you take t log of an analytic function and integrate it over a curve ok and divide by 2 pi i what you will get is the number of zeros-number of poles inside that curve ok. So if you go by that I will get number of zeros-number of poles of f of z-w but there are no poles because f of z-w is of course it is analytic ok and f of z-w is not 0 mind you f of z-w for z on the boundary circle that is for a value of z equal to zeta with mod zeta-z0 equal to rho f of z the value of f of z-w will become f of zeta-w and that is positive. So this quantity is never going to vanish this quantity its modulus is never going to vanish on the boundary curve in particular it means that this quantity itself is not going to vanish on the boundary curve therefore this integral is well defined ok and the function f of z-w has no poles what it has is only zeros. So what this will give you is if you this if I take f of z-w0 then what I will get is the number of zeros of f of z-w0 which is n w0 ok which is the number of times the value w0 is taken ok it is a multiplicity of the 0 of f of z-w0 ok and if I instead of that if I put w what I will get is the number of times the value w is taken see the number of times the value w is taken is the same as the number of zeros of f of z-w ok the number of times a value w is taken by f of z is the same as the number of zeros of f of z-w ok. So this is the number of so you should think of this as number of times the value w is taken so you this is just this is just a application of the argument principle the counting principle and it is purely which purely is just the residue theorem nothing more than that ok. Now but the beauty of this thing is that you can count you have a formula you have a nice formula for number of times an analytic function takes a value ok. So now the so the fact is the following so I will tell you what the fact is the fact is that n of w so I should tell you let me again remind you where this n of w is defined it is defined for all w with this properties ok. So this n of w is going to be defined on this disc ok n of w is going to be defined on this disc and what are the values it takes it takes integer values because n of w counts the number of times the value w is taken ok. So what you are going to have is let me continue let me extend this diagram so you have a map like this this is n of w and this map goes again into the complex plane if you want but actually it goes into integers so I put the complex plane here but actually values in the set of integers which is contained in complex numbers. So it takes values only on the real axis ok and the values are only the integer values takes only integer values so it takes only discrete set of values ok. So how the fact is the following you have a function from defined on this open disc ok which takes values in the complex plane of course the values are integer values forget the fact that they are integer values for the moment think of this function as simply taking values in the complex plane the important fact is this function depends on this w as w varies over this disc the important fact is this n of w is an analytic function of w that is the crucial fact n of w is an analytic function of w for mod w-w0 simply less than delta this is the fact ok. Now this so I am telling you the heart of the theorem is in this statement ok the heart of the proof is in this statement. So let us accept this for the moment and see how you can get the theorem and then go on to prove this separately alright so you see suppose we accept the above fact then if I take the image of n that will be n of the whole disc if I take the image of n under the disc you see n of w is an analytic function of w you know analytic function is of course continuous. So you are taking the image under continuous map of this disc ok but what is this disc this disc is both connected ok it of course the point that I want is that it is connected and if you take the image of a connected set under a function it is again connected. So this is going to be is a connected subset subset of the complex plane ok it is a connected subset of the complex plane but mind you what are the values it is taking the values it is taking are integer values ok. So you are going to get a connected subset of integers but you know the integers are discrete points the only connected sets are the individual points ok the only connected subsets of the set of integers are the single sets if I take a subset having more than one point that will be disconnected because it can be broken down into a union of single points and each single point is closed and is also open because it is the discrete topology ok so there is some topology here so this implies that n of w is equal to a constant integer because the only connected subset of integers are single term subsets since the only connected subsets of c are the single terms. Of course when I say only connected subsets I am not worrying about the null set ok it can be the null set is always if you want topologically maybe one can take null set as a connected set ok but the point is I am not worried about the null set here the fact is that the n is taking n the n is going to take some value ok n is going to give me some value the value is an integer that is that is assured because of the argument principle so it is going to take a value so the image of this is not going to be empty it has to take a value and the fact is it can take only that value because n is analytic so the only thing I am using here is that n is continuous I am not using anything more than that I am not using the full power of the fact that n is analytic the only weaker thing that I am using from here is that n is actually only continues ok as a function of w that will give me n of w is a constant ok but what does this imply this implies n of w is the same as n of w not because n of w does not depend on what w is I can put w equal to w not ok I can put w equal to w not because w can vary anywhere inside this disc w is a variable point in this disc so I put w equal to the central point w not but what is n of w not n of w not is the number of times the function takes the value w not I mean the number of times the function f of z takes the value w not which is the same as the number of zeros of f of z minus w not ok. So what so what does this tell you this tells you that for every value w in this disc n the function f of z does take that value and it takes it as many times as it takes the value w not that is what it says so this implies every value w with mod w minus w not strictly less than delta is taken by f of z exactly as many times as it takes the value w not that is what it says which and of course the number of times it takes the value w not is going to be the multiplicity of the zero of f at w not of f minus w not at z not ok. So let me write that which is the multiplicity m not of the zero z not of f of z minus w not ok in particular what does this tell you this tells you that this whole disc is in the image all these values are taken by the function this whole disc is in the image. So you go back to our argument I started with an analytic function defined on domain ok I assumed it is non-constant I took a value z not and took the value of the function z not that is omega not and what I have ended up proving is that there is a whole disc surrounding w not full of values of the function that means this whole disc is contained in the image of f ok so far the w not is of course in the image of f because it is a value of f what is the image of f it is the values of f the set of subset of values of f ok. So w not is certainly in the image of f and what this argument says is give me a w not which is in the image of f I have a whole disc surrounding w not which is also in the image of f but that is the condition which says that every point of the image of f is an interior point but that tells you that the image of f is open ok so what this tells you so this implies thus this means for every value w not of f of z there exists an open disc mod w minus w not less than delta contained in image of f ok and in fact you see and these values what are the points at which you are looking at these values you are the points at which I am looking at these values or the points in this disc ok so in fact what you are saying is the values are counting or the values inside this disc ok so for every point z in I mean if you look at the function restricted to this open disc there itself the function takes those many values ok. So in fact it is in the image of that disc or even in f of the set of all z such that mod z minus z not is less than rho in fact the image is inside this which is of course a subset of image of f which is f of d. So what this tells you this tells you what this tells you is that f of d or even f of is open open in the complex term and that finishes the proof of the open mapping theorem ok that finishes the proof. So the only thing that I will have to check is this fact so this fact is the fundamental thing that I will have to check I will have to check this fact ok once you check this fact you are done ok so how does one do so let us let us check that fact proof of the fact. So you know so let us let me write this down n w is defined to be 1 by 2 pi i integral over mod z minus z not equal to rho and mind you whenever I write integral over a curve you are always taking the anticlockwise positive orientation. So whenever I when I am integrating over this curve of course if you want I will put a circular I mean I put an arrow on the circle saying that you are going in the positive direction which is anticlockwise direction the direction is decided in such a way that the area in which you are counting the zeros is lies to the left as you walk on the curve in the direction specified. So if you walk on this curve in this direction then to your left lies this interior of the curve and to the right lies the exterior of the curve ok and it is an interior of the curve that you are counting the number of zeros ok more generally the residue theorem you are counting the number of zeros minus number of cores ok and that is in the interior of the curve. So the interior is very very important the interior specified by the orientation so whenever there is an integral please remember there is always an orientation ok and in this you usually assume only the anticlockwise orientation.  You want to show n of w is a analytic function of w that means you have to show that n of w is differentiable with respect to the variable w so long as w lies inside this disc the set of all points centred at I mean points whose distance from w not is great is strictly less than delta ok see suppose it is differentiable ok so think heuristically suppose it is differentiable think of w and z as variables that do not depend on each other ok then how do I get the derivative here I just get the derivative here by applying d by dw ok and if I apply d by dw I will get n dash of w which is the first derivative of w and so that is the same as applying d by dw on this side but you see the integration is only with respect to the variable z the integration has got nothing to do with the variable w so if you can push the differentiation inside if you can switch the integration and differentiation then you can guess what you should expect as the derivative of the of n of w ok we would expect we would expect n dash of w is equal to d by dw of n of w to be equal to 1 by 2 pi i integral over mod z minus z not equal to rho differentiate this with respect to w if you differentiate this with respect to w what you will get is you will get f dash of z f dash of z is of course a constant it does not involve w the only term that involves w is this ok and the differentiation of that will be well you will get f of z minus w the whole squared because differentiation of 1 by t is minus 1 by t squared ok so I will get a minus here and then I have to differentiate this f minus w with respect to w and I will get a minus 1 and I will get dz this is what you would expect so in other words you will get you would expect 1 by 2 pi i integral over mod z minus z not equal to rho f dash of z dz by f of z minus w the whole squared this is what you should expect ok but what have I but what is it that you have used you have used the fact that you can interchange the integration and differentiation by w ok and this needs justification because it is a technical thing you cannot blindly interchange integration and differentiation ok and there are many ways to prove that this is correct ok there are many ways to prove this that this is correct if you prove this then you are proving that w is differentiable ok all this is happening all this is happening with mod w minus w not strictly less than that ok that is where your that is the disc on which your w is varying ok so if this is if you if you can prove this then you have proved enough w is differentiable everywhere in the disc but that means it is analytic because analytic is differentiable not just at a point but differentiable everywhere or in a disc surrounding the point ok this is what you would expect and this is correct ok. So you should remember that even the usual Cauchy's integral formula is actually a statement that involves this kind of idea see the usual Cauchy's integral formula is also actually a statement of this type because you know if you think about it so let me I mean I am telling this so that it will help you to you know it will help you to understand that this is a standard thing that happens and you should recognize it when it happens. So you know if you want so I will say recall suppose you know suppose you have a point suppose you have a point z not and suppose you have a simple closed curve gamma surrounding z not then you know that f n of so you know that f of z not is given by 1 by 2 pi i integral over gamma f of z dz by z minus z not this is your usual Cauchy's integral formula this is for n equal to 1 then if you calculate f dash of z not you will get 1 by 2 pi i integral over gamma f of z dz by z minus z not the whole square and more generally you will get f n of z not is equal to n factorial by 2 pi i integral over gamma f of z dz by z minus z not to the power of probably I will get n plus 1 this is more generally what this is the this is your Cauchy's integral formula but what is how do you get this formula actually see if you start with this formula then you can get all the other formulas simply by noting that f dash of z not is differentiate this with respect to z not think of z not as a variable if you differentiate this with respect to z not then you and you so you have to differentiate this term with respect to z not okay but then assume that you can interchange integration and differentiation then you will be differentiating this but if you differentiate this you will get this and inductively if you do it you will get all these formulas so the whole philosophy of Cauchy's integral formula itself is the fact that you can actually differentiate under the integral sign okay and it is the same kind of idea that I want to use here and that is the same kind of idea that is giving me this okay. So in fact what I want to say is that if you know the proof of Cauchy's integral formula then you know the proof of that there is nothing different really nothing different but nevertheless let me do it okay just to tell you how these techniques are proved I mean how these techniques work so you know it also gives you proof of Cauchy's integral formula if you want so you know I want to show the derivative of this is this okay so what does it mean how do I prove that okay let us go back to let us go back to that you see now what is n dash of w by definition you want to show this is limit delta w tends to 0 n of w plus delta w minus n of w by delta w this is the derivative this is usual definition of derivative okay and of course all this is happening w plus delta w and is also in this disc okay this is how we do the derivative this is the definition of derivative and you want to show that this is equal to this guy 1 by 2 pi i integral over mod z minus z not equal to rho f dash z t z by f of z minus w the whole square this is what you want to show so what is this quantity okay if you write it down it is 1 by 2 pi i into delta omega integral over mod z minus z not equal to rho and n of w plus delta w is f dash of z dz divided by f of z minus w plus delta w minus you will get why again 1 by 2 pi i delta w integral over mod z minus z not equal to rho f dash of z dz divided by f of z minus w okay this is what this which if I if I combine 1 by 2 pi i delta w outside I will get integral over mod z minus z not equal to rho 1 by f z minus w minus delta w minus 1 by f z minus w into f dash of z dz this is what you get and then if you cross multiply take LCM then what you will get is essentially 1 by 2 pi i delta w integral over mod z minus z not is equal to rho in the numerator I am going to get delta w into f dash of z dz divided by f z minus w minus delta w into f z minus w okay and since delta w has got nothing to do with the variable of integration z you can bring it outside and cancel this with that so effectively what you will get is simply 1 by 2 pi i integral over mod z minus z not is equal to rho f dash of z dz by f of z minus w minus delta w into f z minus w so this is what this is what this the quantity in the box reduces to this okay so what you have to show let me rewrite it so to show n dash of w is equal to limit delta w tends to 0 of this quantity 1 by 2 pi i integral over mod z minus z not is equal to rho f dash of z dz divided by f z minus w minus delta w into f z minus w that is equal to 1 by 2 pi i integral over mod z minus z not is equal to rho f dash of z dz by f z minus w the whole square this is what you have to show okay. Now it is a statement that looks quite obvious because you know if for a moment if you can if you assume that you can push this limit inside the integral okay then and if you take delta w if you let delta w tend to 0 you obviously get this okay so essentially this what you have to show is believably correct because if you if you can agree to switch the integral and the limit okay but technically you cannot do that all the time right that also has to be proved okay and how does one prove that you want to show limit of a certain quantity is some other quantity then it is enough to show that the limit of this difference is 0 okay so we go by that so in other words you want to show limit as delta w goes to 0 of this quantity 1 by 2 pi i you combine both the integrals the integral over mod z minus z not equal to rho if I combine both I will get 1 by f z so let me write it like this f dash of z dz this into f z minus w minus 1 by 2 pi i integral of mod z minus z not equal to rho f dash of z by f of z minus w whole squared dz is equal to 0 this is what you want to show and mind you limit of this whole quantity is equal to 0. So I pushed I pushed this quantity inside the limit I brought this quantity was on the right side I brought it to the left side and I pushed it into the limit and I pushed it into the limit because this has no delta w term okay so this term is independent of delta w so applying limit delta w to this does not give anything else except itself okay you get back this term and you know so I have to show as delta w tends to 0 I have to show that this quantity is 0 goes to 0 and to show that complex number goes to 0 it is enough to show that it is modulus goes to 0 so which is so this is equivalent to limit delta w tends to 0 of modulus of this quantity goes to 0 but even but let me do one more simplification let me take this 1 by 2 pi i integral common alright and if I go if I combine both the integrants okay what I will end up with is I will get 1 by 2 pi i integral over mod z minus z not equal to rho I will get if I take the LCM it will be f of z minus w minus delta w into f z minus w the whole squared this is what you will get and here on the numerator I will get an f z minus w and for that term I will get an f z minus w minus delta w if I subtract I will simply get a delta w and what is what was there on top is already a common f dash of z t z okay and you want to show that this is equal to 0 you want to show this is equal to 0 again I mean the limit of this quantity as delta w tends to 0 is 0 is what you want to show okay and but to show that this quantity is 0 it is enough to show that the modulus of this quantity the limit of the modulus of that quantity is 0 okay. So now is where so you know you have to estimate this integral you have to estimate this integral in magnitude okay that is you have to estimate the modulus of the integral as delta becomes very small and show that the estimate also goes to 0 okay or it is bounded by something that goes to 0 as delta w tends to 0 so you see finally it boils down to estimating an integral and this is a standard trick or technique that you would have seen even in a first course in complex analysis we use the so called ML formula. So what is the you recall the ML formula the so called ML formula which is in other words in it is also called as I mean you also remember it as modulus of the integral is less than integral of the modulus okay what is that formula see if you have if you have a simple closed curve g I mean gamma and you have a function f of z or let me even write it as g of z which is defined an analytic on the region enclosed by the simple closed curve and the boundary okay perhaps I do not even need I do not even need g to be you know analytic and all that it is enough if g is just continuous on the boundary it need not even be defined inside okay I do not have g to be analytic I do not need to worry about the about the interior of the curve okay. So g g continuous on the curve gamma okay gamma is of course piecewise smooth contour which means that gamma is a continuous curve and when you parameterize gamma in as a function of the parameter it is first derivative is piecewise continuous okay. Then what the ML formula actually tells you is that if you integrate if you calculate integral over gamma with this orientation with some orientation okay since I am not worried about whether about the interior or the exterior of the curve okay I am really not worried about the orientation it can be either this way or the other way alright and for that matter I should also tell you that the curve gamma also need not be a closed curve can just be any path starting from some point ending at some point it need not even be an could be just any path okay it need not even be a closed curve. Then the if you calculate the integral over gamma of gz dz okay this make sense okay this integral over gamma if you calculate the modulus this is always less than or equal to modulus of the integral is less than or equal to integral of the modulus and this is less than or equal to ML where mod gz is less than or equal to M on gamma okay and integral over gamma mod dz is actually L which is length of gamma okay. So this is something that you should have seen in a first course in complex analysis the fact is g is continuous okay therefore mod g is continuous and mod g is continuous it is a continuous function on this path okay but the path is both compact and connected therefore mod g is bounded a continuous function on a real valued function on a compact connected set is you know uniformly continuous and its image is an interval if it is real valued okay. So that interval will have a maximum value and that maximum value is M so that mod so mod g will be just the continuity of g will tell you that mod g is bounded by M. So I can instead of this mod g is I can put M and that M can come out of the integral then what I will be left out will be integral over gamma mod dz and integral over gamma mod dz is actually the length of the arc common that is the meaning of integral of mod dz okay because mod dz is an element of length along the arc okay so this is actually the formula for arc length if you recall from a first course in complex analysis. So this is a very standard formula and this comes from the corresponding formula that you have for real valued functions of one variable that the modulus of the integral is an integral of the modulus okay you can reduce this from that okay and this is often used and this is what we are going to use in this case also. So let us use that here so you know I have to estimate this integral okay now you see look at my let us look at the situation that I am in the point is so how is this so let me draw the diagrams again so that is this point z0 that is this point originally I started with z0 and there was an z in an open disk center at z0 radius was if I remember it was rho okay z was somewhere here and then the function f took the value z0 to the value w0 and I was again considering a disk centered at w0 and radius delta okay and w was a value here inside this okay and if you remember the delta was chosen in such a way that if you take z on this boundary circle which is given by mod z-z0 equal to rho then f of z will go outside because f mod fz the delta was chosen in such a way that mod fz-w0 is always greater than or equal to delta for z with mod z-z0 equal to rho this was this is how we started if you remember okay this was just from the fact that z0 is a 0 of fz-w0 fz-w0 is a non constant analytic function so z0 is an isolated 0 so there is a disk surrounding z0 where there are no other 0s of fz-w0 and in particular on the boundary if you restrict fz-w0 it has a minimum value it is again a continuous function real valued function on a compact connected set so it is image will be a close interval in the real line and then you are looking at it is minimum value okay and it is this delta that is used here alright and it is only because of this delta that I am using here that n of w is properly defined alright now see my w is here and my delta w is also somewhere in a so when I calculate the derivative at w I am actually taking a smaller neighbourhood so there is a w plus delta w actually lies in this neighbourhood it is a smaller neighbourhood of w that lies inside this delta neighbourhood of w0 okay and what I wanted to know is that see if you look at mod of so you know I am just trying to estimate these quantities okay it is if you look at the function mod of f of z-w okay now what I wanted to understand is when I calculate the derivative n dash of w w is fixed when I calculate n dash of w my w is fixed and it is only delta w that is varying okay delta w is a small change in w so w now is fixed mind you okay and it is delta w that is changing if I fix w then I know mod fz-w this quantity on mod z-w0 equal to rho is also greater than or equal to a certain delta w delta sub w which for w equal to w0 gives me delta sub w0 is my delta okay because you see fz-w fz-w does not vanish for z on the boundary okay fz-w will not vanish for z on the boundary why is that why is that so because for z on the boundary fz-w0 is greater than or equal to delta okay so the distance of fz from w0 is outside this disc okay so f so if I fix a zeta here then f of zeta will be outside it will be a value outside this disc because the distance f of zeta from w0 has to be greater than delta okay and my w is inside so that f of zeta can never be equal to w in other words fz-w will be greater than or equal to a certain minimum value for z with mod z-z0 equal to rho this is again by the same reasoning namely that fz-w mod fz-w is a continuous function real valued function and it is not vanishing it is a non-zero function and it is when you restrict it to this circle which is both compact and connected it has to be uniformly continuous it has to the image has to be a closed interval and this delta w is the least is a left end point of that closed interval it is a least value and it is positive mind you delta is positive delta w delta w is positive and if you put w equal to w0 then delta w is the original delta you started with delta delta w0 is actually delta that is how we got delta okay so I am saying you are getting delta w just in the same way as you got delta but only thing is delta was gotten for w0 same argument you apply to some w you will get a delta sub w and of course delta sub w depends on w but mind you when I am calculating the derivative with respect to w w is fixed what is varying is only delta this capital delta w okay so yeah so I say delta but sometimes I mean the small delta and sometimes I mean the capital delta which is the change in w so please make an effort to distinguish between the two so you see you know the reason why I want this inequality because you know so that I can write the reciprocal of this is less than or equal to 1 by delta w so it helps to take care of this term okay and what about this guy you see more see f of z-w-delta w this will tend to f of z-w as delta w tends to 0 this is just continuity alright therefore what this will tell you is that modulus of this will tend to modulus of this as delta w tends to 0 okay and but you see this guy is greater than or equal to delta sub small delta sub w so what this will tell you is that I can choose delta w sufficiently if I choose delta w sufficiently small I should be able to make this say greater than or equal to say delta by 2 okay so there exist epsilon 1 such that mod if you make mod delta w less than epsilon 1 then you can make mod of f z-w-delta w greater than or equal to delta by delta w by 2 see after all there is a quantity which is going to a quantity which is greater than or equal to delta w then at some point it has to be greater than half that value see in the limit this quantity is going to be greater than or equal to this okay as delta w tends to 0 that means at some point it has to be it has to exceed half delta w okay so beyond certain point it has to it is see values are coming close to delta w so at some point it has to exceed half of delta w I have chosen half of delta w but you could have chosen delta w by anything I mean by you could have taken delta w into some constant okay into some fraction right I have chosen 2 just for fun okay. So this is true so what this will tell you also mod f dash of z is greater than or equal to some m dash on mod z-z0 equal to rho which is you know which is pretty straight forward because you know f is analytic then you know its derivatives are also analytic in particular f dash is continuous okay and a continuous function if you take the modulus no I should not put greater than or equal to I should put less than or equal to okay greater than or equal to is also correct so again same argument you take f dash of z that is a continuous function and that continuous function if you restrict it to this compact connected set is uniformly continuous the image of that being a real valued function is a closed interval on the real line in the positive x axis and if you take the maximum the right end point of the interval you call that as m prime then you see that this is the one okay. So if you put all these together you will get modulus of 1 by 2 pi I integral over mod z-z0 equal to rho of that quantity delta w f dash of z dz divided by f of z-w-delta w into fz-w the whole squared this by the ml formula you will get 1 by 2 pi which is the modulus of this and I will get a mod delta w on top mod f dash of z is less than or equal to m prime and then I will get a mod d then for this quantity I am going to get delta w by 2 and for this quantity I am going to get delta w squared and for what is left that is 1 by I mean integral over mod z-w0 equal to rho of mod dz I will get the length of the arc which is in this case a circle of radius delta sorry it is a circle of radius rho so I am going to get 2 pi rho so I will get this into 2 pi rho and if you calculate I will see this is just going to be constant independent of delta w which is that constant this is m2m prime by delta wq okay that has got nothing to do with the change in w times mod delta w okay and this of course you know this is true for mod delta w lesser than this epsilon 1 okay. So if you take mod delta w less than epsilon 1 and if you further let delta w tend to 0 then this will go to 0 which means this integral will go to 0 as delta w tends to 0 and that is what you wanted to prove and that ends the proof okay. So this tends to 0 as delta w tends to 0 that is the end of the proof of the theorem okay. So that proves the open mapping theorem okay the next thing that we need to understand is how the proof of the open mapping theorem actually gives the inverse function theorem okay and probably we look at it in the next lecture right.