 Good morning. I'd like to begin with something of the background. There's been a good deal of work accelerating in recent years on categories equipped with differential structure. And one usually gives a bunch of axioms. And normally one has a standard model in mind, for example, the smooth functions. Then the question arises from a logical point of view whether the axioms are enough. There are no doubt true in your standard model, but are there any missing axioms? So that came to interest me in a natural place to start. It's just traditional partial differentiation to see if the usual rules there are complete. Usual rules are equational, so it's natural to think of equational actualization. So let's have a quick look at ordinary equational logic just to start off. Here we are. So we have operation symbols of RTN. We build up our terms or expressions in the usual way. If we don't like prefix notation, we might use infix notation, a bunch of axioms. And then we have a logical system. We can assert any axiom with usual rules for equality, flexibility, symmetry and transitivity. We have the congruence rule. And since the assertions are universally quantified implicitly, we can do substitutions. And that gives us theorems, indicated by the usual theorem sign. How does that work with partial differentiation? Well, we have to get our notation right first. So there's a lot of odd things that go on with notation of partial differentiation from the point of view of type three with this discipline of free and bound variables. Here the discipline is somewhat flouted. Well, one thing that happens not quite that is that you might write df by dx and say where f is some function f of x, y. So the separation isn't good. And it'd be better just to have it all in one notation df of x, y by dx. And a good notation, logically, a conventional notation would be something like dE0 by dx. That's meant to be the partial derivative with respect to x. That's a function and you apply it to E1. Here x is bound and that's that. Then one can use that to make sense of the actual notation normally used. For example, dE by dx in that x is both bound and free because that's the function dE by dx at x. So in our notation there, the x occurs twice, once bound and once free. But still we can use the ordinary notation because it just is now in abbreviation for our more standard notation. Another one like that is dE by dx where x is E1 and there's two occurrences of x, they have to be the same. So the x to the left, although bound, you can't change it. So that's a little bit strange, but we just regard that in the abbreviation for dE0 by dx at E1 applied to E1. So we're allowed to use it. And just like one uses infix and has an official notation, our official notation is going to be pdiff of two things. The first thing is an abstract x.e0 and the second thing is an argument. So that's just a way of writing officially the notation dE0 by dx applied to E1. So we're outside the bounds of standard equation logic because we have operation symbols here, pdiff which apply to abstracts, not just arguments. So let's see what our syntax is for our partial differentiation algebra. We're going to allow real constants, variables, plus and times f of some ease where f is actually a function variable. So we're going to have two kinds of variables, ordinary variables and function variables, function variables come built in arities and pdiff. And we're going to do equation logic, we need substitution. So here's a standard substitution. There's nothing special about it. You just in substituting into pdiff, you have to be careful that pre variables don't get captured. And that at the bottom is the same definition, but using the one of the notations, the lightness, one dE0 by dy, where y is E1. We also need to substitute for function variables. And for functions, we need to substitute not expressions but abstracts. So for function f of rtn, we substitute the abstract x0 to x minus one, xn minus one dot e. And these are the equations for it. The first and third are easy to explain. Well, the first one is just if you're substituting to a function application, you substitute into the bodies of it, as long as the function application is not that of the function you're substituting for. If it is, you get to the second line. So here again, you substitute into the bodies, but having done that, you must use the definition of f that you've been given by the substitution. So you must give us result e where the x's are replaced by the e's themselves having been substituted. So that's what gives you the expression on the right. And for pdiff, you just go past it, be careful not to have any variable capture. Okay, logic is just what you'd expect. Same as before, but you add on some things for the new kind of operation symbol. So the obvious congruence rule, and as well as ordinary substitution, we're allowed the functional substitution that was just defined and we get theorems as before. Obviously, this is part of a more general pattern, which I'm not spelling out here because there's not enough time, but I recommend you read these references by Anne Mahmoud and they spell out these things in generality. They use different notations from us, from me, but it is entirely equivalent. One of these, one of these references is ordinary equation logic of the kind of just bench will ordinary binding equation logic, ordinary second order equation logic. The other is a multi sorted one, which is fairly standard variant. Okay, so what's the action is going to be now we've got the formal system. We're going to have four axioms. Well, apart from the obvious axioms of commutative rings and additional multiplication tables of the rules. The first two just tell you how to differentiate a plus and times, which we all know how to do. The last one just tells you that it doesn't matter what order you do partial derivatives in the same dx by dy is the same as dy by dx. The third thing is the chain rule for exactly one case for the case of binary functions f of applied to G naught and G one applied to X. And it's usual chain rule that one has there. And originally I had the energy in rule, but Sam station suggested I could get away with the binary one and I'm grateful to him for that suggestion. Let's see what the consequences of or some consequences of these axioms are one one easy consequences set y equal to zero in the first two axioms that gives you dx by dx is one and the zero by dx is zero, which will both be useful. So let's look at another example theorem. Let's take the unary, excuse me, the constant and the unary versus the chain rule. Let's just look for example at the constant one dy by dx equals zero. And I want to show you how you get that from the binary chain rule. So there's a binary chain rule rewritten. So what we're going to do is we're going to take F to ignore its arguments and just return y so we substitute x naught comma x one dot y that abstract for F. I want G naught to ignore its abstract, excuse me, its argument and just return zero. So x is going to be zero and same for G one. So making that substitution we get dy by dx equals something times to zero by dx plus something similar to zero but the x is zero. Something times zero is zero. So the whole thing zero. So we get dy by the x is zero and a similar argument but making only one of the masking things mask go to zero and the other one being the unary thing that you want gives you the unary case. Which is here is obtained because zero one and two and then we proceed by an inductive argument. Some slight, slightly non trivial inductive argument. You can rewrite actually the general train rule in a substitution way and that's a pretty. I just wanted to put it in there because it's pretty. Yeah, so you just say that DE with some substitution by DX is DE by DX for all the arguments that you're substituting for DXI and you do the substitution on that having done differentiation and then you multiply. So it almost says that substitution and differentiation commute. Okay. The semantics is just what we'd expect given that we're trying to axiomatize equality over the smooth functions. We have two kinds of environments each for the each of the variables role for ordinary variables five for function variables and five of F must be a smooth function with the appropriate attitude. The definition of the denotations are completely what you expect to look at the last two lines. When you look at a function application use the function environment find out what function to apply. When you get to partial differentiation, you see what function X dot E is denoting differentiated and applied to whatever you promise noting. There's assumption there of course that that denotation is smooth. So the definition is not prima facie proper but you have with the appropriate induction you can so inductively the definition is proper and that function is smooth. And then you can define validity just to mean that you notice is valid. Well, I guess I should really say it's true that you not equal to one. If they have the same denotations or it's not as much validity it's just truth in this particular model. Apologies there. Okay, consistency and completeness are pretty well what you expect consistency is straightforwardly provable completeness is what we want to prove, but we want to prove a strength and form of completeness. In fact, we can prove completeness not with respect not only with respect to all smooth functions, but even just with respect to the polynomial functions, polynomially defined functions. So we say a polynomial function environment is one refive as all is a polynomially definable function. And so polynomial continuous is just that it's true that you know it was one and all polynomial environments function environments and you know it was a one. What's the strategy, how are we going to actually do this. Well, we're going to as well we don't quite go to normal forms almost normal forms we define things called canonical forms and show that every expression is provable equal to its canonical form or to which we show available. So the equation equivalence relation between canonical forms such that any equivalent canonical forms are provably equal. And then the crucial thing is to show this polynomial separation theorem. If two canonical forms are not equivalent, then it can be separated by a polynomial environment. That gives you completeness because you go through a contrapositive argument. If you need prime are not provably equal, then they're chronicle forms are not provably equal. Then the canonical forms aren't equivalent. And that means they can be separated by a polynomial environment that means they're not polynomially equal. And then you just go the other way around and you get if they are polynomially equal, then they're provably equal. And since equivalence canonical forms is the middle of that implication chain and the last part you can make a circle using consistency, you have further that a prime or provably equal if and only if the canonical forms are equivalent. Now, the lemma that says you can get the canonical form is effective. So once we can show the canonical forms equivalent then we would also get decidability, and they will be. Okay, so how are we going to separate things? How are we going to achieve the separation that we need? Well, let's go through some examples and that'll pretty well show you the idea of the proof. So suppose for example I want to make g of f of f of g of x different from g of f of g of x, and I would like to do with the polynomial. How are we going to do that? Well, it turns out all you have to do is number all the distinct sub expressions. So x I'm going to number one g of x which occurs on both sides. I'm going to number two f of g of x I'm going to number three f of f of g of x one number of four and g of all of that I'm going to number five. Then if you look in that it says for example g of x which number one has to be two so that gives you a condition g of one equals two. And if you go around all the occurrences of g you get which are three or better you get another couple of equations like that which you have to have g of fours five g of three of six and a couple of equations for f. But Lagrange, excuse me Lejeune's interpolation. Was it like wrong for Lejeune? I've forgotten. I'll call it Lejeune, it may well be wrong. It's like wrong. Okay, so for g of one equals two to get that, you write this first sum sum and so when x is one, then the multiplication there comes out to be one could you got this normalization factor one minus four divided by one minus three. So if you get two that term vanishes when x is four or x is three. And so makes no difference then but the other terms make the difference for each of those and the things symmetrical so you get what you expect. How about functions of several arguments. Exactly the same. So we write two trees there, just to make it clear what we're doing, rather than that linear way of writing. So for example, if you take the left hand tree, you can see that f of three and four ought to be five. And the right hand tree tells you the f of one and two ought to be six. So this time we do multivariate interpolation. And instead of x minus something to see whether or not x is equal to the something. Since the something's are now vectors length to what we do is we usually Euclidean distance, but since we want polynomials we take the square of Euclidean distance. So for example, in the first term we take the square of the Euclidean distance of x from one to and divide that the square of the Euclidean distance of three four for one to so when x is 34. Well, again, that'll all come out to one and just get the five or next actually is one to that'll be zero as we want. Okay, that's fine. But we have partial differentiation. How does that affect things. Well, a little bit of notation, what a bit of notation for iterated partial differentiation. So this is the case of a binary function, we can differentiate the first or second argument. So indicate that beneath is zero or one. So if m's a sequence of zeros and ones, that means differentiate well the last one is the first thing to differentiate so if it's for example D zero one. It's zero by D one of F, and we're applying that to X zero and X one that case so we have a standard location for iterated partial differentiation. Suppose we now want those two expressions to be different. Well we just regard the iterated partial differentiations as functions. And which they are, but I mean symbolically, and we write trees like that. And we get some interpolation conditions as before. For example, for iterated partial differentiations of F, you have D not one of F at three four is five and D one one of F at one two is six. So now we have to do interpolation but with partial differentiation. And luckily that is possible by a theorem of Severe 1930 that any such problem is solvable by a polynomial. It's an amazing theorem. This is the multivariate case, the univariate case was done previously by Hermite. That's why it's called Hermite interpolation. And this is just a general statement of Hermite interpolation. If you're a set of points or nodes as they call it Xi in the dimensional space. And for each node, finitely many iterated partial differentiation conditions and a function F then it is such a polynomial. And the proof is explicitly given in this easily accessible book by Lawrence. But there's one more issue, which is that we have polynomials as well as all these other issues. So we have to deal with them. So we work with polynomially layered expressions. And here's a couple of them, the polynomials in red, the function symbols in blue and you can see the polynomials and the functions alternate the inputs of the polynomials of the outputs of the functions. And the inputs of the functions, the outputs of the polynomials. So the polynomials once we've got the inputs, the outputs are determined, of course. But the outputs of these two currencies, the polynomial P different. And notice these are essentially different polynomials because it inputs F and G in the one hand and G and H of various things are different. So the polynomials there are as a way of X, Y and period P of UV where X, Y and UV are different variables. So we have to get the variables right. These are called the interpolation variables. Once we get them right, we get a bunch of polynomials that we have to make different. And we can always make a bunch of different polynomials different with suitable inputs. And then, once we have all those reels, that'll give us the interpolation that we need. For example, if you look at the F there in the top left, then it's output is going to be the input of P, the first input of P, but we'll know that. The output are going to be, actually, they're going to be the same thing twice, namely output of the Qs. So we'll have a couple of numbers coming in and number going out. But we can all solve all such interpolation problems, even when the Fs are partially derived, so we can make that work. This just is a scheme for doing that, which shows you in more detail the kinds of things you have to do. First of all, you look at all the atomic expressions, those are the ones which are just applications of functions, F of Q of Gx, Q of Gx and so on. We include the variables. These are going to become, as it were, variables for interpolation, so we call them interpolation variables. So we assign new variables to each of these, V1, V2 and so forth. Once we know them, we know how to get a polynomial. So P has the F which is assigned variable V1 and the G thing which assigned variable V3, so we look at the polynomial with P of V1, V3. So we have the polynomial interpolation polynomials that we, and that gives us the polynomial differentiation problem we have to solve. And off we go, we solve it, we get interpolation conditions, and that's how we do things. So let's spell out a little bit how we do canonical forms and atomic expressions. So atomic expressions, well first of all we need some symbolism, F sub M for repeated differentiation, we make the F, the M a sub rather than writing D sub M, F for no particular reason. And so we see a variable as atomic expression and the application of F to canonical expressions is an atomic expression. That's much, that's following the same pattern as before. And we see if we have a polynomial, and we substitute atomic expressions in its variables, and we get a canonical expression. And we have this canonicalization lemma that every expression is provably equal to a canonical form as I mentioned before. So the equivalence of these things, well first of all we define equivalence of atomic expressions and any variable equivalent to itself. And if we substitute equivalent canonical expressions or that in equal function applications, then their equivalent as long as the two M's are just permutations of each other because we can do partial differentiations any order we like. And now we have this equivalence relation we can define the equivalent, we can assign to every equivalence class of atomic expression interpolation variable V sub equivalence class of a. And we can use that to define the node polynomials these interpolation polynomials we had a moment ago. So for any canonical form P of the A's, we just make the interpolation polynomial P of the V's. And then we see two canonical forms of equivalent if they're in no polynomials are equivalent in the usual sense of equivalence of polynomials that you can prove them equal by the ring axioms and using the multiplication and addition tables. So then using the techniques that we exemplified in the previous discussion, we prove the separation theorem that's the main theorem. That given any finite set of canonical forms the polynomial function environment separates any to any equivalent clinical forms in that finite set. And that gives us immediately polynomial completeness as we said, and it's a little bit of extra work which is very nice of course that's my theorem, but we want to go a bit further. So we also get that a two canonical forms of equivalent as a should be just equivalent not provably equivalent, if not only if they're provably equal. Now I'd like to show decidability and something else like almost normal form in my remaining few minutes. So let's revisit the definition of equivalence and improve it a little bit. So this is exactly the same definition of equivalent atomic forms as before, the set we no longer ask for the canonical forms to be provably equal but to be equivalent, but you know from the previous result that that's the same thing. So this is an equivalent version of equivalence for atomic forms. And it's now in a form that obviously you could push through an inductive proof on the sum of the sizes of atomic forms that if you can decide equivalence of canonical forms you can decide equivalence of atomic forms. You can also push through a proof that you can decide if two canonical forms of equivalent and you can prove that just using the ring axioms additional location tables and the fact that you can do partial differentiations in any order you like. So that's in other words we've missed out three of the axioms for partial differentiation the chain rule and how to differentiate sums and products. Corresponding thing for canonical forms says previously I was we had this very large global assignment of interpolation variables which needs to be approved, we can do a local assignment as well, or instead so we think of two canonical forms we think of their atomic forms or so called immediate atomic forms of equivalence A's and A''s. We figure out what their equivalence classes are with respect and then we assign to each equivalence class just of that finite set and a variable, a new variable and then we look to see if those resulting nodes, polynomials are equivalent. This in fact is not a doesn't need anything it's just an immediate variant in the definition it's a trivial variation of definition. The thing is it's suitable for proving decidability, because what you do is you look at the atomic sub expressions. You decide that what the equivalence relations hold, then you can form the equivalence classes you form the new variables, you can decide polynomial equivalence, so we can push that inductive proof through and you can also prove, push the other inductive proof through. And that gives us two theorems with which I'll conclude the first one is decidability is decidable whether or not to expressions are provably equal and I'd like to know the complexity of that and I have no idea how to go about finding the complexity of that. Another result which I've essentially announced is let's say two expressions are provably equal if you can do so without using the first three axioms of partial differentiation. And this says that for any two canonical forms they're provably equal if not for canonical equivalent if not if they're provably equal using this a limited the these limited abilities. In fact, you can prove that a little bit because you can go a bit a little bit more normal. We can put the partial differentiations my standard order, and we can multiply out the polynomials to get sums of distinct monomials. And then with that, resulting stronger version of clinical form, then for provability only need additions axioms namely commutativity and associativity. So thank you for your attention over quite a long time and I hope it was worth your while doing so. And I look forward to discussion on Tuesday.