 It is an honor to be here and I have to, pardon me, I have to second Yoshui's statement that this is a dream for a formal verification engineer. I mean the amount of interest in the room and this beautiful field that those of us who have you know devoted a lot of our professional and how do you say, personal lives too. It's amazing to see so much enthusiasm so I feel very fortunate to be a part of this group where such great work and awareness is happening around formal verification, static analysis and so on. So I'm very excited today to launch our Amandra contracts platform which is formal verification in the cloud for smart contracts initially targeted for Ethereum. So what powers Amandra contracts is our formal verification engine that I'll talk to you about called Amandra but what we've done is we've taken the Ethereum virtual machine and formalized it within Amandra given a full bit precise operational semantics to the instruction set of the Ethereum virtual machine and then from that we're able to build a stack of tools that work at many different levels powered by techniques such as symbolic execution something called principle region decomposition and ultimately both automated and interactive proof. So I'll walk you through many details show some examples and then I hope we can do lots of demos because there isn't that much time but please find me if you're interested and sign up. So before I get started I want to show a two minute video that gives some background on what we do at aesthetic integration and really how we got here. So now I will hand over to Hudson because I think he has to man the sound. Thank you. What's plaguing today's electronic financial markets? The world economy is built on a staggeringly complex tangle of algorithms, competitive pressures and economic recession have contributed to increasingly opaque and unstable markets. The effects of glitches and unfair advantages can be devastating, cratering the competence of investors and ultimately hurting the general public. Regulators and the industry have worked tirelessly to define what safe and fair markets are. What's been missing is a way to analyze and regulate all of the algorithms underlying the solution is formal verification, the science of correct algorithms. Other safety critical industries already rely on formal verification to make their algorithms safe. Amandra by aesthetic integration is the world's first formal verification solution for financial markets. Consider the building of a bridge, a design flaw may be catastrophic. To make it safe engineers use powerful computer-aided design tools which analyze designs for safety automatically. Powered by latest advances in artificial intelligence, computer science and mathematics, Amandra brings unprecedented rigor to the electronic financial markets, analyzing the safety and fairness of algorithms before they're deployed. Financial algorithms are unfathomably complex. They can be in a virtually infinite number of possible states. Examining 100, 1000 or even 100,000 test cases isn't enough. We must consider every possible case to answer definitively. What can possibly go wrong? Amandra allows designers and regulators to fix breaches of safety and fairness before they affect markets. Let's build safer, more reliable and regulatory compliant systems that all of us can trust, saving everyone time and money. Amandra by aesthetic integration, the logic of financial risk. So thank you. Thank you very much. So just a bit of background, we are aesthetic integration and our work before Ethereum and you know also work that continues vehemently has mostly been with financial algorithms like dark pools, matching logics, exchange matching logics, connectivity layers for instance between venues and different trading systems. So we have worked with a number of top investment banks on formally verifying regulatory properties of their core infrastructure algorithms. Last year after DevCon won something very exciting that has really been a huge catalyst for us in growth is we won something called the UBS future of finance challenge. So this was a global competition between 620 companies, 52 countries and we ended up winning the whole thing and I think a major reason was we took the design of UBS' dark pool and actually analyzed it for regulatory properties, showed how certain issues that were settled with the SEC could be found automatically and many related things. So also at the sort of middle of the summer a little bit before we finished what is to our knowledge is the world's first formally verified dark pool design for a major investment bank where we of course in the process fixing many aspects of their system were able to prove 114 fairness and safety properties ultimately about their collection of order types. And we recently closed our seed round backed by Google's Chief Business Officer Phillip Schindler which is leading to some very exciting things of getting formal verification out to the masses and democratizing this technology that has up to now been been quite arcane in many ways. So my co-founder Dennis, he was head of the central risk trading desk at Deutsche before we founded AI in my background. So I did my PhD in formal verification at Edinburgh. A lot of what I did was around something called an SMT solver called Z3. So I co-authored a lot of the core mathematics of Z3, the linear decision procedures and then went down to Cambridge as a postdoc working on safety and fairness of collision avoidance algorithms and then we realized we could apply many of these same techniques to financial algorithms. So we all know the problems that are motivating formal verification being taken up in our community so I don't need to belabor those. But there are some other aspects that haven't been mentioned at least that I've seen. And in addition to the need for automated auditing tools around correctness, fairness and safety, of course mitigating subtle bugs and so on, we also need fundamentally robust tools for risk management. So I'm talking here for those of you in investment banking where you have exposure. Imagine an investment bank goes all in on Ethereum and five years from now has 100,000 smart contracts in a portfolio. What is their exposure? How do you calculate risk? How do you price, for instance, derivatives and structured products that are expressed as ultimately Ethereum bytecode? And that's another place where we see formal verification as being utterly crucial. So some of the things we're building on top of our formalized EVM in a mantra are around exactly this risk management, calculating Greeks and market exposure linked directly to the semantics of the bytecode. So EMONDRA leverages a number of recent breakthroughs in formal verification. SMT, which is powerful automated proof techniques combining SAT solvers, what really powers formal verification for hardware, combining those techniques with richer mathematical theories, things like reasoning about arrays and bit vectors and nonlinear and linear inequalities and so on. Model-based automated induction plays a huge role. So when you have algorithms that ultimately iterate or when expressed in a logic may be expressed as recursion, you typically need to prove theorems by induction, either by techniques like writing out inductive invariance, as we saw with the work of Christian and Yochui with Y3, or with proving inductive lemmas that then get used, for instance, as rewrite rules. These are all bread and butter for formal verification, but we now have much more powerful tools for, for instance, using counter examples to help us guide the way we inductively generalize, which is something you often need to do when proving theorems by induction. But fundamentally what we're doing with the EMONDRA cloud is aiming to really democratize access to these techniques and make them usable to developers and non-developers alike. We all need them and need them to be easy. So fundamentally you give EMONDRA two things, a smart contract, let's say expressed as Ethereum bytecode, for instance, and a property you wish to verify. And EMONDRA will work to either give you a proof of that property or work to show you a counter example where a property fails. And then there's, I'll show you many ways that you can get involved in that process and interactively work with EMONDRA. So EMONDRA is a programming language, a mathematical logic, and a reasoning engine all in one. It's a formalized subset of a functional language called OCaml. Crucially, when designing EMONDRA, you know, we set out to design our dream formal verification system. And one of the most important things is having first-class counter examples. So in EMONDRA we're always working to find counter examples to false conjectures and actually reflect those into the runtime and into the logic so that you can compute with them, which is really crucial. So there's, let's see, I really don't have much time. So I want to just show you, oh, it's probably impossible to read, but this is a little bit of a walkthrough of our formalized Ethereum virtual machine in EMONDRA. And the way you formalize this, because EMONDRA's logic is also an executable programming language, you actually just feel like you're writing a simulator for the virtual machine, writing an interpreter, defining precisely the memory model, the storage model, all of the instructions and how those operate on the state, and then ultimately there's a top-level state transition function, and then finally that's iterated, right, until you run out of gas or reach an exceptional halting state or you halt in a nice way. So in EMONDRA, by the way, we are releasing our EVM model under Apache 2.0, and so our hope is that the community will manage this, port it to other systems, and it can be something that evolves as the, you know, design of Ethereum evolves. But what I'm showing you here now, this is a very, very low-level interface, but I've loaded into EMONDRA the model of the Ethereum virtual machine. I've also loaded in some bytecode. Those are now in the runtime. Those of you who know OCaml will see that this looks just like you're at an OCaml top-level redevelop print loop, but actually everything you write in this language is also reflected into mathematics, and you can then reason about it. So I'm now asking EMONDRA here to decompose the state space of effectively the virtual machine interpreter running that piece of bytecode, and what this is doing, it's ultimately using something called symbolic execution under the hood, but it's telling me the possible behaviors of this piece of bytecode with respect to the actual semantics of the instructions. So this tells me that actually this piece of bytecode, which is for a simple name registry, it only has two possible behaviors with respect to arbitrary symbolic storage, and one behavior it would go toward execute at program counter 17 if it doesn't run out of gas, and it would update the storage in the other behavior it I believe would halt, you just told me, it would halt at 8 and would not update the storage for instance. So now I'm actually, let me see if I can pause this for a second. We have two minutes, you can't read it unfortunately, but these are theorem statements about the execution of this bytecode. So these are the formal specs of how this name registry should work, and we're asking Amandra to prove those for us, and it does, which is great, directly about the meaning of the bytecode, so not at a higher level, but really at the actual bytecode that will be executed on the EVM, and now we're asking it to prove some things that have mistakes, and what happens is in this case we can ask Amandra to show us where its proof attempt failed, and then we can ask Amandra to also mine that for counter examples, but these are very useful for understanding these what we call sub goals for understanding why something isn't true. So I don't have time to go through this, this is a higher level, so we have a higher level language that is a subset of Amandra, subset of OCaml, that we can compile to the EVM, and so one of the things we're working on is proving the correctness of that compiler with respect to the EVM semantics, so hopefully we'll finish that by the end of the year, but I wanted to show you these region decompositions, like I did of the possible behaviors of that piece of bytecode, we can scale this to very complex algorithms, so this is a smart contract encoding effectively the matching logic pricing function for an exchange, and we asked Amandra to decompose its state space, it told us there's actually only 107 different possible behaviors, and now I can go through and we have this hierarchical tree representation as a baroni diagram that's interactive, you can go and experiment and see what are the different symbolic behaviors of this function with a map to its state space, and we're getting on the right, you can't read them unfortunately, but constraints on the input that would cause a certain output, and these are all expressed symbolically, and so now we know, even though this has an infinite state space, the system itself only has 107 possible symbolic behaviors, so we have a new website that launches today, you can go to it's www.amandra.ai, and it is, if you click on Amandra contracts, you can sign up, and we're adding a certain number of people each week as we scale up, but effectively it's Amandra now in the cloud, running in Google Cloud with something called Code Envy, which uses Eclipse Che and a number of things to spin up docker containers for you and have Amandra, so I see I'm out of time, but anyways we are building this stack also with a smart contract auditing API, and finally thanks to our incredible team, and I hope all of you will get involved, and the community can really make use of Amandra and join us at amandra.ai. Thank you. Thank you very much.