© HSE UNIVERSITY
On August 12, 2025, mathematician Irina Lomazova, Professor at the School of Software Engineering and Academic Supervisor of the Laboratory of Process-Aware Information Systems, celebrates a milestone birthday. In an interview with the HSE News Service, she spoke about Petri nets, mathematical genealogy, and the logic of a course that students can follow in real time.
Playing with Infinity
It is often thought that competition and rivalry help one succeed. That does not apply to me—I have never tried to ‘push through’ anywhere. I simply did what I found interesting, and things somehow fell into place, often working out quite well.
My childhood was spent in Krasnoyarsk. My father was an engineer. My mother taught English, and by the time I was in primary school I could already read simple texts in English. When I reached the fifth grade, an English-specialised school opened in the city, and my mother transferred my brother and me there. In such schools, a foreign language is taught from the second grade, but it was decided to place fifth graders on the new programme too. So, we quickly caught up with the primary school curriculum, and by the sixth grade we caught up with everything. We had English lessons every day, and four years of study at that school later helped me a great deal—both in professional communication and in teaching in English.
Our home was full of books—both fiction and popular science in all kinds of fields. I loved reading; it was probably my favourite pastime. I remember how, one summer after the sixth or seventh grade, I read Turgenev’s novels one after another from the collected works. I also read popular science books, but even Perelman’s brilliant books on recreational physics did not turn me into a physicist: I had, and still have, no real ‘feel’ for physics (whatever physicists may mean by that). I look at physical models as a mathematician. But among the popular books on mathematics, there are two that I still remember vividly. They are Stories about Sets by Naum Vilenkin and Playing with Infinity by Rózsa Péter. They explained, for instance, how a part can be equal in size to the whole—there are just as many even numbers as there are natural numbers in total, and yet there are also the odd ones. Fantastic! Those books made a very strong impression on me at the time.
From the fifth grade onwards, the school would send me to science olympiads, at first simply because I was doing well academically, and later because I turned out to perform quite well. In those days, the entire country had a single system of olympiads in the natural sciences: local or municipal rounds, then regional or provincial ones, and finally the All-Union Olympiad. In the eighth grade I made it to the All-Union competition in mathematics and even received some kind of certificate there. At home, excessive praise was not encouraged. My parents believed that a child should not be overpraised. Still, to celebrate winning the regional olympiad, a large cake with chocolate hares would be bought.
I spent my last two school years at the Novosibirsk Physics and Mathematics School affiliated with Novosibirsk State University, which now bears the name of one of its founders, Mikhail Lavrentyev (now the Lavrentyev Specialised Educational Scientific Centre of the Novosibirsk State University). Back then, as now, it was run by real enthusiasts. We had excellent teachers not only in mathematics, physics, and chemistry, but also in history and literature. Moreover, transferring to that Novosibirsk Physics and Mathematics School meant I did not have to go through the final years of ordinary school with all its intensive preparation for university entrance exams. Although, of course, we took our own exams every six months.
At the Novosibirsk Physics and Mathematics School I got used to being in the minority as a girl. There were four of us in the class. Later, when I entered university, there were seven of us in the group. That already seemed a lot. But neither I nor, I think, my fellow female students were particularly concerned about this—nor about the occasionally condescending or patronising attitude from certain teachers and male colleagues. I never competed with anyone and never set myself the goal of proving anything to anybody. My reasoning was simple: ‘Am I interested in this? Good. And whether something will come of it or not—we shall see.’
I enrolled at Novosibirsk University to study pure mathematics, without much thought about what I would do after graduation. When it came time to choose a specialisation after my third year, I knew I needed something in discrete mathematics, but I did not yet know exactly what. I began attending meetings with departments, where lecturers would present their research. The Programming Division of the Department of Computational Mathematics was headed by Andrey Yershov, founder of the Siberian School of Computer Science, who did a great deal to develop theoretical and systems programming. I was not keen on programming as such. But at one of the meetings spoke Boris Trakhtenbrot, an outstanding mathematician and specialist in mathematical logic. His name is attached to two well-known theorems. Boris Trakhtenbrot presented the following problem: can one prove, and how, that a program works correctly—that is, that it implements the intended function? The usual method for checking correctness is testing. But testing only allows you to detect an error, not to prove its absence. As programming folklore has it: every error found in a program is the penultimate one.
If, however, one can prove that a program works correctly, this means it will give the right answer for any input (potentially from an infinite set of inputs).
This problem fascinated me immediately. It involved applying methods of mathematical logic to solve an important practical problem—and moreover, one from the rapidly changing field of programming. On the one hand, it was pure mathematics; on the other, a new applied area. After his talk, I approached Boris Trakhtenbrot and asked whether I could write my term paper under his supervision. He simply asked: ‘What is your grade in logic?’ I answered: ‘Excellent.’ And he accepted me. Thus, from my fourth year I joined his division at the Institute of Mathematics of the Siberian Branch of the Academy of Sciences. My diploma project dealt with Hoare logic, which is used to precisely formulate and prove program properties. Afterwards I went on to postgraduate study, where I wrote my candidate’s dissertation on verification. And then, via graduate placement, I returned to Krasnoyarsk to teach at the local university.
My time in Krasnoyarsk turned out to be quite interesting. I defended my dissertation in Andrey Yershov’s division—programming. But what kind of programmer am I? I am a mathematician. Still, the mathematics faculty of Krasnoyarsk University needed a lecturer to teach Foundations of Programming. On paper, I was suitable. So, I was given a year-long course for the mathematics faculty: 150 students, lectures, several seminar groups, plus seminar tutors. And the language was PL/I—highly technical, and one I did not know at all. Well, if it had to be done, it had to be done. At that time, questions of programming methodology and methods of teaching informatics were being widely discussed around the world. I knew something about this, partly from books and partly because Andrey Yershov himself was actively involved in these issues and, in particular, was establishing computer science teaching in schools. What should children be taught? How should they be taught? Certainly not commands. They needed to understand the foundations of algorithmics. The particular programming language was not important. What mattered was what lay behind the language. Today, programming is an engineering profession, requiring extensive specialised knowledge. Back then, it was only the beginning. Besides, my students were not programmers. I understood the principles, and the technical details could always be worked out. So, I prepared myself and began teaching.
I worked at Krasnoyarsk University for seven years. It was a very good faculty with wonderful people, but there was no one in my narrow field. So, I decided to move to Pereslavl-Zalessky, where a new Program Systems Institute of the Russian Academy of Sciences had just been founded. Whenever something new is being created, it is always exciting. Once, the founder and director of our institute, Alfred Ailamazyan, asked me: ‘Could you organise an international seminar?’ I wrote to my former university teachers—Boris Trakhtenbrot in Israel and Vadim Kotov, who was then living in the United States. They passed the invitation along to their colleagues, and as a result, well-known scholars came to the seminar in Pereslavl-Zalessky. At that seminar Boris Trakhtenbrot introduced me to Wolfgang Reisig—a close associate of Carl Adam Petri, the inventor of Petri nets. Wolfgang not only knew him well but also wrote the first book on Petri nets.
Back in my student days, I had attended a special course on Petri nets by Vadim Kotov. He was one of the first in our country to work actively in this field and even wrote a book on Petri nets in Russian. But at the time I was working on a different topic, and I forgot about Petri nets. And then Wolfgang Reisig brought with him an entire suitcase full of materials from recent conferences on Petri nets (the International Conference on Petri Nets has been held annually since 1980). It was a marvellous gift. That was when I truly discovered this subject for myself.
In computer science, almost everyone has heard of Petri nets. A Petri net is a model of a distributed system consisting of interacting components. For example, in a computer network each machine runs its own program, but it is not entirely autonomous, since it communicates with others, and the behaviour of the whole system is determined by these communications. As far back as the 1960s, Carl Petri wrote that the computer is not a calculator—it is for communication. His 1961 dissertation was devoted to communicating automata. At the time, this sounded unexpected and even strange, but today this is precisely how most people use computers.
I joined HSE in 2010. Before that, I had taught for seven years at Russian State Social University. I have noticed that my life seems to divide neatly into seven-year cycles. Sometimes they are doubled—like the years I spent at the Program Systems Institute of the Russian Academy of Sciences. And now, at HSE, I have entered what could be called my third term, and I am not planning to move anywhere else. What attracted me to HSE back then was the strong emphasis on research—something I have always been engaged in.
When I first arrived, the Faculty of Computer Science did not yet exist. The School of Software Engineering had only just been created, and we graduated 40 students a year. It was the very beginning. We had an informal working group, and I would like to mention the colleagues who worked alongside me at that time: Rimma Akhmetsafina and Vadim Podbelsky, who are sadly no longer with us, Efim Grinkrug, and Konstantin Degtyarev, who is still working at HSE’s School of Software Engineering today. The person leading us and the whole process was Sergey Avdoshin. We were discussing, initiating, inventing something all the time. And since I was collaborating with Eindhoven University of Technology in the Netherlands, Sergey Avdoshin suggested we set up a joint master’s programme with them. And we did. Then, 12 years ago, in 2013, under the scientific leadership of Wil van der Aalst, one of the world’s leading scholars in computer science, we established the HSE Laboratory of Process-Aware Information Systems (PAIS Lab). I headed it for 12 years, and since last year the laboratory has been directed by Roman Nesterov.
In recent years I have been teaching two courses. One is called Automata and Process Models. This is the very beginning, the fundamentals, which I teach to first-year undergraduates. The second is Formal Methods in Software Engineering, which I teach at the master’s level. And here there is a connection with my own teacher, to whom I would like to return. Boris Trakhtenbrot was an extraordinary teacher. Alongside being a great mathematician with deep insight, he also had a keen sense for the new. Some people spend their entire lives working on a single problem, which is worthy of respect. But Boris Trakhtenbrot could be called one of the founders of theoretical computer science: at different times he worked in various directions, making a significant contribution to each. And he was also a wonderful lecturer. It often happens that when you follow a course, you understand individual topics, but only when revising for the exam do you suddenly grasp the overall logic of the course. Until then, you only see fragments. With him, however, you understood everything in real time as he lectured. For me, that was an absolutely astonishing feeling. I now try to teach my own students in such a way that they do not have to think: ‘I will listen now, and only later will I understand.’ They must understand here and now. That is a principle I deliberately bring into my teaching. I also dislike giving marks. Ideally, assessment should be binary: ‘yes/no,’ meaning ‘understood/did not understand.’ But that is in an ideal world. In reality, of course, the formal system of grading helps to avoid many conflicts and subjective biases.
At the moment I have three doctoral students. Two of them are completing their studies this year, and I am already thinking it would be good to have new ones. I enjoy working as a team—discussing, talking things through. I never post a list of suggested problems; instead, I choose a problem for a particular student or doctoral candidate. If you want to work with me, come along, we will talk, and we will come up with something.
Mathematical Genealogy of Boris Trakhtenbrot
Source: A. Avron et al. (Eds.): Trakhtenbrot/Festschrift, LNCS 4800, pp. 46–57, 2008. © Springer-Verlag Berlin Heidelberg
I would like to conclude my story with one episode. When it was time for me to choose a diploma topic, Boris Trakhtenbrot gave me a problem, saying: ‘I know you will do this quickly.’ I really did complete it in three weeks. Then he said: ‘Good, let it rest. Now we will turn to an interesting problem. I cannot be sure it will work out. But we have a safety net.’ In my view, that is a very sound approach. One must not give a student an unsolvable problem. Although Boris Trakhtenbrot’s intuition was extraordinary: I managed to complete the second problem for my defence as well.
There is such a notion as mathematical genealogy: diagrams that show teacher–student lineages for mathematicians. In its Lecture Notes in Computer Science series, Springer publishes jubilee volumes dedicated to outstanding scholars, the pillars of computer science. One such volume was released for Boris Trakhtenbrot’s 85th birthday. In the mathematical tree published there, which can be traced back to the seventeenth century, one finds Carl Gauß, Karl Weierstraß, Nikolai Luzin, and many other distinguished scholars. I was truly fortunate to have had such a teacher.