Javier Esparza talking on a gray background

Photo credit: David Monniaux

Back to all posts

Abstract models, research questions, and the LLM revolution

by Nicola Gigante — 4 November 2026
Topics: Interview

Hi Javier, thanks again for accepting our invitation. Let’s start with you. What can you tell us about your background and your career?

I was born in Pamplona, in the north of Spain, the city where every July people run ahead of the bulls through the streets. That’s what people always want to know: did I ever run with the bulls? No, never! One of my brothers did, once.

I’m the youngest of six siblings, and the others are quite a bit older than me. So now I’m in the strange situation where everybody in my family is retired, my wife too, and I’m the only one still working. It’s a bit hard sometimes. Everybody is having fun and making plans (“let’s meet here, let’s go there”), and I can’t join because I’m still working!

I lived in Pamplona until I went to university. Then I moved to Zaragoza, the nearest big city, halfway between Madrid and Barcelona, to study physics. After graduating I changed to computer science, for all the wrong reasons! I knew nothing about computer science. I’d simply started playing with computers during my studies and got interested. When I finished my degree, I asked my faculty whether I could do a PhD there in theoretical physics. They told me it would be very hard to get an academic position down the line: “Are you sure you want to do this?” So I asked at the Department of Electrical Engineering, which had a group doing computer science, and they said, “Oh yes, come here! We need people.” And so I started a PhD thesis on Petri nets.

So you did your PhD there and then moved straight to Munich?

No, no, it was a long road. During my PhD I met Eike Best, who was very important for my career, and I started doing some research with him. After my PhD he offered me a postdoc position in Germany. He had just become a professor at a very small university, in Hildesheim. It was great for me, because it’s where I really learned theoretical computer science. The university was so small that they needed people to teach TCS courses, and even though I didn’t know much, they let me teach. That’s how I learned.

After Hildesheim I did a second postdoc at the LFCS in Edinburgh, which was also fantastic. LFCS was a large and very strong theory group, so I was much more in touch with what was going on in TCS around the world. Then I got an associate professorship in Munich and stayed seven years. After that came a professorship in Edinburgh, then one in Stuttgart, and finally, after many years, I came back to Munich. So yes, a rather long path.

A long path indeed! Turning to your research: how would you describe what you do, and how do you see it?

For the first fifteen or twenty years of my career I dreaded this question, because I always felt that I wasn’t choosing problems; the problems were choosing me. Some questions would appeal to me, and I’d go in that direction.

But after twenty years, when you look back, you start to see some patterns. I think I was strongly shaped by my training as a physicist. In physics you try to build abstract mathematical models of reality, and I don’t think people fully appreciate how daring the abstractions physicists make really are. That’s my approach too. I work on mathematical models, very abstract mathematical machines, that capture important aspects of software. Then I analyze these objects in the hope that they’ll tell me something about the real thing. So I’ve worked a lot on Petri nets as abstractions of concurrent systems, and on pushdown automata as abstractions of procedural programs. For several years now I’ve been working on population protocols, an abstraction of massively parallel distributed systems that communicate stochastically.

These topics have led you to many projects, including an ERC grant. Which was the most interesting or most important for you?

Much of my research has been funded by individual grants in Germany. That’s very valuable, because even today it’s still possible to get grants for purely theoretical topics, and I appreciate that instrument a lot.

Then there was my ERC grant, and over the years I’ve also taken part in German Graduiertenkollegs, research training groups in English. These fund around ten PhD students who work together under a group of supervisors who wrote the proposal jointly. The one I enjoyed most was the first we got funded, here in Munich. More people were involved, but my closest collaborators were Tobias Nipkow, Helmut Seidl, and Martin Hofmann. The topic was combining different verification techniques and studying how they connect. Tobias is the main person behind the Isabelle theorem prover, Helmut is a great expert in static analysis, Martin was an expert in type theory, and I was the model-checking guy. It was a lot of fun, because we really talked to each other. I enjoyed it very much, and I think we did good work.

I should also mention the ERC grant, because of its size. It let me have several people working on the same topic for five years, and that was crucial. At the time I was fascinated by population protocols—well, I still am—and with a smaller project I don’t think we’d have achieved what we did. One big project was far more effective than three small ones would have been.

Coming to ETAPS: can you tell us about the topic of your invited talk?

About three years ago I started a new research direction. Instead of verifying that a system is correct, we want to certify that the computation it executes on a specific input is correct. In particular, we approach this by connecting automated reasoning with a part of complexity theory that goes back to the ’90s: interactive proof systems and probabilistically checkable proofs. I first learned about these topics many years ago, when I had to teach them for a complexity course, and I immediately felt there were obvious connections. But I didn’t find any interesting result until about three years ago, thanks to an excellent PhD student of mine, Philipp Czerner.

Imagine a library for Boolean functions, implementing standard operations like AND, OR, and so on, and imagine I am interested in the result of executing a sequence of calls to the library. This can take exponential time, and I only have a laptop. You have a very fast computer, so I ask you to run the sequence for me. I’d still like to check your result, because your machine may be buggy, or something bad may have happened, but I can only invest polynomial time in the length of the sequence. Notice, not in the time it took you to execute it.

Complexity theorists found a way to do this; it is possible. However, current algorithms require that you invest a lot of extra effort. If I want to check the sequence quickly, you have to execute it in a very costly way. The question is how to get a better balance: you may have to do some extra work, fine, but not astronomically more work.

You’ve touched on this already, but what are your favourite open questions and challenges in the field?

As I said, I’ve always felt that questions have chosen me. I don’t think I’ve ever published a paper solving an open problem posed ten years ago that nobody could crack until I came along. That just doesn’t work for me. Even in my PhD I ended up finding my own questions and answering them.

And I think we need a bit more of that. Many colleagues say it’s very important to choose the right questions: there are so many questions one could work on, you should focus on the important ones. But that’s also a bit dangerous, because we can all end up doing the same thing. Today the “right question” is machine learning, of course. But the people who revolutionized machine learning, and science with it, did so when machine learning wasn’t popular. Neural networks in particular were not popular at all. They weren’t working on the “right question” of their time. So I’d really like to tell young people: if a question fascinates you, go for it.

So it’s important to stay focused on other things too…

Yes! I think that’s important.

What advice would you give a young researcher starting out now?

I’d say it’s a very good time to start. The computer science community has just made first contact with extraterrestrials, called LLMs. This is a revolution, and during a revolution someone who’s just starting may have a better chance of coming up with something truly great.

It’s nice to hear an optimistic view. Not everybody is so optimistic, for example about how LLMs are disrupting mathematics.

Well, I can be pessimistic too!

Oh, you don’t have to be!

When I started out in Zaragoza, there was no internet yet. It came soon after, but at the beginning there wasn’t any. I was in the Department of Electrical Engineering, and we had no computer science library. I had no access to the literature. I could only read the proceedings that colleagues brought back from conferences—well, I could also order papers through the university library, but that took weeks. Then the internet came, and it democratized science. It was fantastic; it levelled the playing field: everybody had the same access to the literature.

I think the LLM revolution goes, or at least could go, in the opposite direction. In the future you might need a lot of money to do good research in mathematics. Experimental physics was always somewhat like that, because you needed a lot of funding for instruments and equipment. But mathematics had this wonderful situation of equal opportunity: all you needed was your brain. That may change. To be a successful mathematician you may need access to the latest models, and money to pay for them. I don’t think that’s a good development. But maybe, as a community, we’ll manage to solve that problem.

We’ll see how it turns out! Thanks again for your time, Javier!

Thanks to you!