Спасибо за развернутый ответ, уважаемый
AGu,
Вопрос о синтаксисе самой математики (не внутри математики, а именно самой математики), наверное, несколько провокационный. Если синтаксис математики есть, то сама математика определенно попадает в класс формализованных языков. Если же синтаксиса математики нет, тогда нужно объяснить, почему в натуральном языке, гораздо менее строгом, синтаксис определенно есть, и в этом сравнении становится непонятным "отсутствие синтаксиса в математике". При этом в натуральном языке, с помощью формальной логики, переведенной на язык программирования, значительное количество ошибок синтаксиса отлавливается. Переводимость такой операции на алгоритмический язык это аргумент как минимум, в пользу частичной формальности даже натурального языка.
Вопрос этот, о синтаксисе, вовсе не праздный. Неявно любое доказательство использует правила формальной логики, которая сама требует синтаксиса над своими объектами. Математические доказательства еще в 1960 году были опробованы на вычислимость с помощью ЭВМ. Оказалось, что доказательства Эвклида очень легко переводились на алгоритмический язык, и машина доказывала теоремы лучше и быстрее своих создателей. Это аргумент в пользу полной формализуемости в этом частном примере доказательств и определений математики.
Может, прав Р.Фейнман, который отмечал, что математика — это язык плюс мышление? Однако в то же время он считал, что такой науки, как математика, не существует.
Мне кажется, что широкое определение в этом контексте звучит так: математика это средство для выражения алгоритма мышления. Тогда в этот же (логический) род попадает и Visual Basic. Действительно, тогда по этому признаку, математика не наука. Что здесь не так?
Теперь интересно сравнить подход к языкам программирования и к языку(?) "математика". Если первые подчеркивают необходимость синтаксиса для возможности алгоритмического решения (вычисления) по правилам формальной логики, то в области математики заметно определенное уклонение от четкого утверждения о наличии синтаксиса и семантики математики. Может, это отнести на субъективное нежелание стать на одну ступень с программистом, помогающим решать на формальном языке задачи других областей?
Из этого следует интересное наблюдение. Трудно представить работоспособный алгоритмический язык, который имеет практическое значение, и позволяет при этом пользователю менять произвольно свой синтаксис. Для первого отлаженного куска алгоритма это годится. Попытка же достроить что-то поверх, при сохранении произвола, приведет к трудно отлавливаемым ошибкам. Такое вообще невозможно там, где нижний, следующий слой логики, зашит в железо, скажем, в процессор. Именно процессор главный и безоговорочный судья в том компьютере, который сейчас перед нами.
В первом выражении подразумевается нечто установленным "по умолчанию". Если специально для
не указана область значений, то считается
. Соответственно, вот здесь:
- «Пусть задана функция , где »
функция задана или функция не задана? Если при указанных условиях, и пропущенном
это не может считаться заданием функции, тогда всё высказывание должно быть помечено как ложное.
Если подобная запись встретилась один раз, то допустимо применить процедуру исправления ошибки. Однако логика подсказывает, что если подобная запись используется в дальнейшем (в определении, доказательстве) в качестве высказывания, то всё, что имеет это посылкой в других высказываниях, не имеет смысла как целостный алгоритм. В языке программирования очень просто написать четкий формальный алгоритм проверки и остановить пользователя на этой строке, указав как на ошибку (или выдать предупреждение). Предупреждение, это в общем, подводный айсберг для остальных, кто будет в дальнейм делать из таких посылок заключения.
В следущей записи,
как мне показалось, внимание отвлекается на нетрадиционность в этом контексте, записи того типа, что Вы указали,
. Но в пакете "Математика" от Вольфрама тоже нетрадиционная запись для функций, например,
в квадратных скобках. Понятно, что синтаксис в отношении алфавита может быть гибким, если не изменяет семантику между словами
и
.
Однако здесь вопрос более существенный. Если синтаксис и семантика математики есть, то это высказывание,
, при указанных условиях, противоречиво уже формально, без подстановок. Что выберет математик для характеристики такой записи? (отбросим субъективное, когда преподаватель-математик безоговорочно укажет на ошибочность этой записи студенту, но встретив в авторитетной книге такую запись, предпочтет не спорить). Если синтаксис и семантика математики есть, то запись ошибочна формально, и допускать ее в доказательство абсурдно. Есть ли четкое мнение на этот счет?
Следующая запись это опять-таки простая проверка, насколько строго в математике обстоит дело для новых определений на предмет конфликтов с уже принятыми ранее определениями.
- «Дано: число , и — вектор, тогда умножение этого вектора на это число запишется: »
Судя по Вашему ответу, ограничений в математике на это нет, в том числе и на переопределение.
Поскольку язык Вы не фиксировали, говорить о синтаксических ошибках бессмысленно. В этом смысле это «бессмысленные записи».
Вот весь вопрос в том и состоит, математика это язык, со своим синтаксисом и семантикой, или это нечто другое? Если язык, то можно немедленно приступать к формализации этого языка и вычислению доказательств, предварительно прогнав имеющееся данные, определения, и присвоения, через spell checker, ну а проверку логики, через формализацию правил вывода заключений, оставить специальному алгоритму счета.
Из признания, что математика суть язык, будет следовать очень многое...