Математические нотации: Прошлое и будущее (2000)

 

Большинство математических обозначений существуют уже более пятисот лет. Я рассмотрю, как они разрабатывались, что было в античные и средневековые времена, какие обозначения вводили Лейбниц, Эйлер, Пеано и другие, как они получили распространение в 19 и 20 веках. Будет рассмотрен вопрос о схожести математических обозначений с тем, что объединяет обычные человеческие языки. Я расскажу об основных принципах, которые были обнаружены для обычных человеческих языков, какие из них применяются в математических обозначениях и какие нет. 

Согласно историческим тенденциям, математическая нотация, как и естественный язык, могла бы оказаться невероятно сложной для понимания компьютером. Но за последние пять лет мы внедрили в Mathematica возможности к пониманию чего-то очень близкого к стандартной математической нотации. Я расскажу о ключевых идеях, которые сделали это возможным, а также о тех особенностях в математических обозначениях, которые мы попутно обнаружили.

Большие математические выражения — в отличии от фрагментов обычного текста — часто представляют собой результаты вычислений и создаются автоматически. Я расскажу об обработке подобных выражений и о том, что мы предприняли для того, чтобы сделать их более понятными для людей.

Традиционная математическая нотация представляет математические объекты, а не математические процессы. Я расскажу о попытках разработать нотацию для алгоритмов, об опыте реализации этого в APL, Mathematica, в программах для автоматических доказательств и других системах.

Обычный язык состоит их строк текста; математическая нотация часто также содержит двумерные структуры. Будет обсуждён вопрос о применении в математической нотации более общих структур и как они соотносятся с пределом познавательных возможностей людей.

Сфера приложения конкретного естественного языка обычно ограничивает сферу мышления тех, кто его использует. Я рассмотрю то, как традиционная математическая нотация ограничивает возможности математики, а также то, на что могут быть похожи обобщения математики.

 

Mathematical Notation: Past and Future (2000)

 

Most mathematical notation now in use is between one and five hundred years old. I will review how it developed, with precursors in antiquity and the Middle Ages, through its definition at the hands of Leibniz, Euler, Peano and others, to its widespread use in the nineteenth and twentieth centuries. I will discuss the extent to which mathematical notation is like ordinary human language—albeit international in scope. I will show that some general principles that have been discovered for ordinary human language and its history apply to mathematical notation, while others do not. 

Given its historical basis, it might have been that mathematical notation—like natural language—would be extremely difficult for computers to understand. But over the past five years we have developed in Mathematica capabilities for understanding something very close to standard mathematical notation. I will discuss some of the key ideas that made this possible, as well as some features of mathematical notation that we discovered in doing it. 

Large mathematical expressions—unlike pieces of ordinary text—are often generated automatically as results of computations. I will discuss issues involved in handling such expressions and making them easier for humans to understand. 

Traditional mathematical notation represents mathematical objects but not mathematical processes. I will discuss attempts to develop notation for algorithms, and experiences with these in APL, Mathematica, theorem-proving programs and other systems. 

Ordinary language involves strings of text; mathematical notation often also involves two-dimensional structures. I will discuss how mathematical notation might make use of more general structures, and whether human cognitive abilities would be up to such things. 

The scope of a particular human language is often claimed to limit the scope of thinking done by those who use it. I will discuss the extent to which traditional mathematical notation may have limited the scope of mathematics, and some of what I have discovered about what generalizations of mathematics might be like.

 

И основной способ дать людям взаимодействовать с чем-то столь сложным — использовать что-то вроде языка.

Обычно языки появляются в ходе некоторого поэтапного исторического процесса. Но компьютерные языки в историческом плане сильно отличаются. Многие были созданы практически полностью разом, зачастую одним человеком.

And basically the way that people seem to communicate anything sophisticated that they want to communicate is by using some kind of language.

Normally, languages arise through some sort of gradual historical process of consensus. But computer languages have historically been different. The good ones tend to get invented pretty much all at once, normally by just one person.

В основном мы отталкивались от английского языка, так как имена этих фрагментов основаны на простых английских словах. То есть это значит, что человек, который просто знает английский, уже сможет кое-что понять из написанного в Mathematica.

Однако, разумеется, язык Mathematica — не английский. Это скорее сильно адаптированный фрагмент английского языка, оптимизированный для передачи информации о вычислениях в Mathematica.

Можно было бы думать, что, пожалуй, было бы неплохо объясняться с Mathematica на обычном английском языке. В конце концов, мы уже знаем английский язык, так что нам было бы необязательно изучать что-то новое, чтобы объясняться с Mathematica.

Однако я считаю, что есть весьма весомые причины того, почему лучше думать на языке Mathematica, чем на английском, когда мы размышляем о разного рода вычислениях, которые производитMathematica. 

Однако мы так же знаем, заставить компьютер полностью понимать естественный язык — задача крайне сложная.

In a sense, we were leveraging on English in a crucial way in doing this because the names we used for those chunks were based on ordinary English words. And that meant that just by knowing English, one could get at least somewhere in understanding something written in Mathematica.

But of course the Mathematica language isn't English—it's a tremendously stylized fragment of English, optimized for explaining computations to Mathematica.

One might think that perhaps it might be nice if one could just talk full English toMathematica. After all, we already know English so we wouldn't have to learn anything new to talk to Mathematica.

But I think there are some good reasons why we're better off thinking at a basic level inMathematica than in English when we think about the kinds of computations thatMathematica does.

But quite independent of this we all know that having computers understand full natural language has turned out to be very hard.

 

Я думаю, математическая нотация — весьма интересное поле исследования для лингвистики.
Как можно было заметить, лингвистика в основном изучала разговорные языки. Даже пунктуация осталась практически без внимания. И, насколько мне известно, никаких серьёзных исследований математической нотации с точки зрения лингвистики никогда не проводилось.
Обычно в лингвистике выделяют несколько направлений. В одном занимаются вопросами исторических изменений в языках. В другом изучается то, как влияет изучение языка на отдельных людей. В третьем создаются эмпирические модели каких-то языковых структур.

And, in fact, I think mathematical notation is a pretty interesting example for the field of linguistics.

You see, what's mostly been studied in linguistics has actually been spoken languages. Even things like punctuation marks have barely been looked at. And as so far as I know, no serious linguistic study of mathematical notation has been made at all in the past.

Normally in linguistics there are several big directions that one can take. One can see how languages evolved historically. One can see what happens when individual people learn to speak languages. And one can try to make empirical models of the structures that languages end up having.

 

И если заглянуть в прошлое, то можно увидеть, что есть три основные направления, из которых появилась математика в том виде, в котором мы сейчас её знаем — это арифметика, геометрия и логика.
Арифметика берёт своё начало со времён древнего Вавилона. Возможно, и геометрия тоже приходит из тех времён, но точно уже была известна в древнем Египте. Логика приходит из древней Греции.
И мы можем наблюдать, что развитие математической нотации — языка математики — сильно связано с этими направлениями, особенно с арифметикой и логикой.

And if one traces things back, there seem to be three basic traditions from which essentially all of mathematics as we know it emerged: arithmetic, geometry, and logic.

Arithmetic comes from Babylonian times, geometry perhaps from then but certainly from Egyptian times, and logic from Greek times.

And what we'll see is that the development of mathematical notation—the language of mathematics—had a lot to do with the interplay of these traditions, particularly arithmetic and logic.

 

Арифметика, вероятно, возникла из нужд торговли, для таких вещей, как, к примеру, счёт денег, а затем арифметику подхватили астрология и астрономия. Геометрия, по всей видимости, возникла из землемерческих и подобных задач. А логика, как известно, родилась из попытки систематизировать аргументы, приведённые на естественном языке.

Arithmetic presumably came from commerce and from doing things like counting money, though it later got pulled into astrology and astronomy. Geometry presumably came from land surveying and things like that. And logic we pretty much know came from trying to codify arguments made in natural language.

И, фактически, один из самых важных вопросов относительно чисел, который, как я полагаю, будет всплывать ещё много раз — насколько сильным должно быть соответствие между обычным естественным языком и языком математики?
Или вот вопрос: он связан с позиционной нотацией и повторным использованием цифр.
Как можно заметить, в естественных языках обычно есть такие слова, как "десять", "сто", "тысяча", "миллион" и так далее. Однако в математике мы можем представить десять как "один нуль" (10), сто как "один нуль нуль" (100), тысячу как "один нуль нуль нуль" (1000) и так далее. Мы можем повторно использовать эту одну цифру и получать что-то новое, в зависимости от того, где в числе она будет появляться.
Что ж, это сложная идея, и людям потребовались тысячи лет, чтобы её действительно принять и осознать. А их неспособность принять её ранее имела большие последствия в используемых ими обозначениях как для чисел, так и для других вещей.

And actually one of the biggest issues with numbers, I suspect, had to do with a theme that'll show up many more times: just how much correspondence should there really be between ordinary natural language and mathematical language?

Here's the issue: it has to do with reusing digits, and with the idea of positional notation.

You see, in natural language one tends to have a word for "ten", another word for "a hundred", another for "a thousand", "a million" and so on. But we know that mathematically we can represent ten as "one zero" (10), a hundred as "one zero zero" (100), a thousand as "one zero zero zero" (1000), and so on. We can reuse that 1 digit, and make it mean different things depending on what position it appears in the number.

Well, this is a tricky idea, and it took thousands of years for people generally to really grock it. And their failure to grock it had big effects on the notation that they used, both for numbers and other things.

Вообще, эта неспособность увидеть возможность вводить имена для числовых переменных есть интересный случай, когда языки или обозначения ограничивают наше мышление. Это то, что несомненно обсуждается в обычной лингвистике. В наиболее распространённой формулировке эта идея звучит как гипотеза Сепира-Уорфа (гипотеза лингвистической относительности).
Разумеется, для тех из нас, кто потратил некоторую часть своей жизни на разработку компьютерных языков, эта идея представляется очень важной. То есть я точно знаю, что если я буду думать на языкеMathematica, то многие концепции будут достаточно просты для моего понимания, и они будут совсем не такими простыми, если я буду думать на каком-то другом языке.

Generally, this failure to see that one could name numerical variables is sort of an interesting case of the language or notation one uses preventing a certain kind of thinking. That's something that's certainly discussed in ordinary linguistics. In its popular versions, it's often called the Sapir-Whorf hypothesis.

And of course those of us who've spent some part of our lives designing computer languages definitely care about this phenomenon. I mean, I certainly know that if I think in Mathematica, there are concepts that are easy for me to understand in that language, and I'm quite sure they wouldn't be if I wasn't operating in that language structure.

Ньютон не особо интересовался обозначениями.
Чего не скажешь о Лейбнице. Лейбниц много внимания уделял вопросам нотации. В действительности, он считал, что правильные обозначения есть ключ ко многим человеческим вопросам. Он был своего рода дипломат-аналитик, курсирующий между различными странами, со всеми их различными языками, и т.д. У него была идея, что если создать некий универсальный логический язык, то тогда все люди смогли бы понимать друг друга и имели бы возможность объяснить всё что угодно.
Были и другие люди, которые размышляли о подобном, преимущественно с позиции обычных естественных языков и логики. Один из примеров — довольно специфичный персонаж по имени Раймонд Лул, живший в 14 веке, который заявлял, что изобрёл некие логические колёса, дающие ответы на все вопросы мира.
Но так или иначе, Лейбниц разработал те вещи, которые были интересны и с позиций математики. То, что он хотел сделать, должно было так или иначе объединить все виды обозначений в математике в некоторый точный естественный язык с подобным математике способом описания и решения различных проблем, или даже больше — объединить ещё и все используемые естественные языки.

Newton was not a great notation enthusiast.

But Leibniz was a different story. Leibniz was an extremely serious notation buff. Actually, he thought that having the right notation was somehow the secret to a lot of issues of human affairs in general. He made his living as a kind of diplomat-analyst, shuttling between various countries, with all their different languages, and so on. And he had the idea that if one could only create a universal logical language, then everyone would be able to understand each other, and figure out anything.

There were other people who had thought about similar kinds of things, mostly from the point of view of ordinary human language and of logic. A typical one was a rather peculiar character called Ramon Lull, who lived around 1300, and who claimed to have developed various kinds of logic wheels—that were like circular slide rules—that would figure out answers to arbitrary problems about the world.

Вообще говоря, в 80-х годах 19 века Пеано разработал то, что очень близко к обозначениям, которые используются в большинстве современных теоретико-множественных концепций.
Однако, как и Лейбниц, Пеано не желал останавливаться лишь на универсальной нотации для математики. Он хотел разработать универсальный язык для всего. Эта идея реализовалась у него в то, что он назвал интерлингва — язык на основе упрощённой латыни. Затем он написал нечто вроде краткого изложения математики, назвав это Formulario Mathematico, которое было основано на его обозначениях для формул, и труд этот был написал на этой производной от латыни — на интерлингве.
Интерлингва, подобно эсперанто, который появился примерно в это же время, так и не получил широкого распространения. Однако этого нельзя сказать об обозначениях Пеано. Сперва о них никто ничего толком и не слышал. Но затем Уайтхед и Рассел написали свой труд Principia Mathematica, в котором использовались обозначения Пеано.
Думаю, Уайтхед и Рассел выиграли бы приз в номинации "самая насыщенная математическими обозначениями работа, которая когда-либо была сделана без помощи вычислительных устройств". 

Actually, in the 1880s Peano ended up inventing things that are pretty close to the standard notations we use for most of the set-theoretical concepts.

But,a little like Leibniz, he wasn't satisfied with just inventing a universal notation for math. He wanted to have a universal language for everything. So he came up with what he called Interlingua, which was a language based on simplified Latin. And he ended up writing a kind of summary of mathematics—called Formulario Mathematico—which was based on his notation for formulas, and written in this derivative of Latin that he called Interlingua.

Interlingua, like Esperanto—which came along about the same time—didn't catch on as an actual human language. But Peano's notation eventually did. At first nobody much knew about it. But then Whitehead and Russell wrote their Principia Mathematica, and in it they used Peano's notation.

I think Whitehead and Russell probably win the prize for the most notation-intensive non-machine-generated piece of work that's ever been done. 

Есть один момент, который постоянно проявляется в этой области — нотация, как и обычные языки, сильно разделяет людей. Я имею в виду, что между теми, кто понимает конкретные обозначения, и теми, кто не понимает, имеется большой барьер. Это кажется довольно мистическим, напоминая ситуацию с алхимиками и оккультистами — математическая нотация полна знаков и символов, которые люди в обычной жизни не используют, и большинство людей их не понимают.

There's one thing that comes through in a lot of this history, by the way: notation, like ordinary language, is a dramatic divider of people. I mean, there's somehow a big division between those who read a particular notation and those who don't. It ends up seeming rather mystical. It's like the alchemists and the occultists: mathematical notation is full of signs and symbols that people don't normally use, and that most people don't understand.

Компьютеры

Вот вопрос: можно ли сделать так, чтобы компьютеры понимали эти обозначения?

Грамматика обычных разговорных языков развивалась веками. Без сомнения, многие римские и греческие философы и ораторы уделяли ей много внимания. И, по сути, уже примерно в 500 года до н. э. Панини удивительно подробно и ясно расписал грамматику для санскрита. Фактически, грамматика Панини была удивительно похожа по структуре на спецификацию правил создания компьютерных языков в форме Бэкуса-Наура, которая используется в настоящее время.
И были грамматики не только для языков — в последнее столетие появилось бесконечное количество научных работ по правильному использованию языка и тому подобному.
Но, несмотря на всю эту активность в отношении обычных языков, по сути, абсолютно ничего не было сделано для языка математики и математической нотации. Это действительно довольно странно.
Были даже математики, которые работали над грамматиками обычных языков. Ранним примером являлся Джон Уоллис, который придумал формулу произведения Уоллиса для числа пи, и вот он писал работы по грамматике английского языка в 1658 году. Уоллис был тем самым человеком, который начал всю эту суматоху с правильным использованием "will" или "shall".
В начале 20 века в математической логике говорили о разных слоях правильно сформированного математического выражения: переменные внутри функций внутри предикатов внутри функций внутри соединительных слов внутри кванторов. Но не о том, что же это всё значило для обозначений выражений.
Некоторая определённость появилась в 50-е годы 20 века, когда Хомский и Бакус, независимо разработали идею контекстно-свободных языков. Идея пришла походу работы над правилами подстановки в математической логике, в основном благодаря Эмилю Посту в 20-х годах 20 века. Но, любопытно, что и у Хомского, и у Бакуса возникла одна и та же идея именно в 1950-е.
Бакус применил её к компьютерным языкам: сперва к Fortran, затем к ALGOL. И он заметил, что алгебраические выражения могут быть представлены в контекстно-свободной грамматике.
Хомский применил эту идею к обычному человеческому языку. И он отмечал, что с некоторой степенью точности обычные человеческие языки так же могут быть представлены контекстно-свободными грамматиками.
Конечно, лингвисты включая Хомского, потратили годы на демонстрацию того, насколько всё же эта идея не соответствует действительности. Но вещь, которую я всегда отмечал, а с научной точки зрения считал самой важной, состоит в том, что в первом приближении это всё-таки истина — то, что обычные естественные языки контекстно-свободны.
Итак, Хомский изучал обычный язык, а Бакус изучал такие вещи, как ALGOL. Однако никто из них не рассматривал вопрос разработки более продвинутой математики, чем простой алгебраический язык. И, насколько я могу судить, практически никто с тех времён не занимался этим вопросом.
Но, если вы хотите посмотреть, сможете ли вы интерпретировать некоторые математические обозначения, вы должны знать, грамматику какого типа они используют.

Computers

But now the question is: can computers be set up to understand that notation?

For ordinary human language, people have been making grammars for ages. Certainly lots of Greek and Roman philosophers and orators talked about them a lot. And in fact, already from around 500 BC, there's a remarkably clean grammar for Sanskrit written by a person called Panini. In fact, Panini's grammar is set up remarkably like the kind of BNF specifications of production rules that we use now for computer languages.

And not only have there been grammars for language; in the last centuries or so, there have been endless scholarly works on proper language usage and so on.

But despite all this activity about ordinary language, essentially absolutely nothing has been done for mathematical language and mathematical notation. It's really quite strange.

There have even been mathematicians who've worked on grammars for ordinary language. An early example was John Wallis—who made up Wallis' product formula for pi—who wrote a grammar for English in 1658. Wallis was also the character who started the whole fuss about when one should use "will" and when one should use "shall."

In the early 1900s mathematical logicians talked quite a bit about different layers in well-formed mathematical expressions: variables inside functions inside predicates inside functions inside connectives inside quantifiers. But not really about what this meant for the notation for the expressions.

Things got a little more definite in the 1950s, when Chomsky and Backus, essentially independently, invented the idea of context-free languages. The idea came out of work on production systems in mathematical logic, particularly by Emil Post in the 1920s. But, curiously, both Chomsky and Backus came up with the same basic idea in the 1950s.

Backus applied it to computer languages: first Fortran, then ALGOL. And he certainly noticed that algebraic expressions could be represented by context-free grammars.

Chomsky applied the idea to ordinary human language. And he pointed out that to some approximation ordinary human languages can be represented by context-free grammars too.

Of course, linguists—including Chomsky—have spent years showing how much that isn't really true. But the thing that I always find remarkable, and scientifically the most important, is that to a first approximation it is true that ordinary human languages are context-free.

So Chomsky studied ordinary language, and Backus studied things like ALGOL. But neither seems to have looked at more advanced kinds of math than simple algebraic language. And, so far as I can tell, nor has almost anyone else since then.

But if you want to see if you can interpret mathematical notation, you have to know what kind of grammar it uses.

И эта возможность весьма вдохновляет. Потому что для того же устаревшего текста на естественном языке нет никакого способа сконвертировать его во что-то значимое. Однако в математике есть такая возможность.

It's kind of exciting that it's possible to do this. Because if one was thinking of legacy ordinary language text, there's just no way one can expect to convert it to something understandable. But with math there is.

язык или нотация ограничивают наше пространство мыслимого. 
Итак, что это значит для математики?
Что ж, я не смог пока что полностью ответить на этот вопрос. Однако я обнаружил, что, по крайней мере в большинстве случаев, графическое представление или представление в виде пиктограмм гораздо эффективнее обозначений в виде конструкций на обычных языках.
Возвращаясь к самому началу этого разговора, ситуация напоминает то, что происходило тысячи лет в геометрии. В геометрии мы знаем, как представить что-то в графическом виде. Ещё со времён древнего Вавилона. И чуть более ста лет назад стало ясно, как можно формулировать геометрические задачи с точки зрения алгебры.
Однако мы всё ещё не знаем простого и ясного способа представлять геометрические схемы в обозначениях на естественном языке. И моя догадка состоит в том, что практически все эти математические вещи лишь в небольшом количестве могут быть представлены в обозначениях на естественном языке.
Однако мы — люди — легко воспринимаем лишь эти обозначения на естественном языке. Так что мы склонны изучать те вещи, которые могут быть представлены этим способом. Конечно, подобные вещи не могут быть тем, что происходит в природе и вселенной. 
Но это уже совсем другая история. Так что я лучше закончу на этом.

...language—or a notation—can limit what one manages to think about.

So what does that mean for mathematics?

Well, I haven't completely solved the problem. But what I've found, at least in many cases, is that there are pictorial or graphical representations that really work much better than any ordinary language-like notation.

Actually, bringing us almost back to the beginning of this talk, it's a bit like what's happened for thousands of years in geometry. In geometry we know how to say things with diagrams. That's been done since the Babylonians. And a little more than a hundred years ago, it became clear how to formulate geometrical questions in algebraic terms.

But actually we still don't know a clean simple way to represent things like geometrical diagrams in a kind of language-like notation. And my guess is that actually of all the math-like stuff out there, only a comparatively small fraction can actually be represented well with language-like notation.

But we as humans really only grock easily this language-like notation. So the things that can be represented that way are the things we tend to study. Of course, those may not be the things that happen to be relevant in nature and the universe.

But that'd be a whole other talk, or much more. So I'd better stop here.

При изучении обычного естественного языка были обнаружены различные историко-эмпирические законы. Пример — Закон Гримма, которые описывает переносы в согласных на индоевропейских языках. Мне было любопытно, можно ли найти подобные историко-эмпирические законы для математического обозначения.

In the study of ordinary natural language there are various empirical historical laws that have been discovered. An example is Grimm's Law, which describes general historical shifts in consonants in Indo-European languages. I have been curious whether empirical historical laws can be found for mathematical notation.