Если не хотите глубоко вникать в предмет, возьмите другой учебник логики (не Бурбаков).
Даже если и хотеть, наверно тоже не стоит их брать, они мне мозг сломали, а потом оказалось, что матлогика на самом деле всё-таки весьма проста.
-- Пн июн 24, 2019 23:17:29 --Попробую Бурбаков почитать, если через пару месяцев дальше первой главы не продвинусь, видимо возьму какую-нибудь другую книгу.
Если что, они в следующих томах сами постарались от выбранного в первом представления отодвинуться. По крайней мере я это слышал, хоть сам и не проверял.
-- Пн июн 24, 2019 23:30:59 --Кстати, извиняюсь если оффтоп, а не проще ли было бы вместо "строк" использовать "(направленный ациклический) граф"?
Не, это будет неудобно, тем более что строка — это вполне общеизвестное понятие среди математики, занимающейся формальными языками. Строки — это просто кортежи, все строки над алфавитом
собираются в
.
Чтобы представить кортеж графом, надо будет хитро сопоставлять разные вхождения одинаковых букв вершинам. Придётся рассматривать графы с точностью до изоморфизма «буквоназначений» вершинам. С линейно упорядоченным множеством будет то же. Выбрав единственный представитель каждого такого множества — а это окажутся ровно все конечные ординалы — мы получим традиционное определение, ну по крайней мере одно из (кортежи определяют кто как хочет, хотя для работы с кортежами разных длин хорошо как раз определение
, множество функций в
из ординала
).
Тут ещё проблема в том, что логика и многие другие области работают на самом деле ни с какими не строками, а с деревьями, а представление строками типа упрощает изложение тем, кто раньше никаких алгебр термов не видел, и делает явным финитистский настрой. Работа напрямую с деревьями делает многие определения сильно проще и задвигает манипулирование скобочками в записи на неформальный уровень, где ему, лично по-моему, для таких высокоуровневых вещей и место. Вот когда будем писать proof checker или компилятор, тогда на уровень строк опустимся (и и то это будут большей частью строки токенов, заранее полученных из исходного текста).
-- Пн июн 24, 2019 23:43:49 --Как бы то ни было, мне пока еще рано думать про термы, формулы и т.д. Надо разобраться с критериями подстановки.
Это вы зря так думаете. Переменные в общем случае бывают разных сортов, и подставлять вместо переменной можно лишь терм соответствующего сорта; в классической (в смысле изложения и языка) логике первого порядка они как раз зовутся термы и формулы, а я использую «терм» в более общем смысле. Правда, в той же логике первого порядка есть переменные только одного сорта — вместо которых можно подставлять термы, и кроме того в терм там никогда не может входить как составная часть формула. Но в общем случае, и случае многосортных логик (если они и не нужны, есть другие полезные формализмы, где всё насчёт подстановки и подобного низкоуровневого сохраняется — теории типов в разнообразии), равноправия побольше, и термы могут строиться из термов других сортов, и замыкаться в конструкциях, подобных кванторным формулам, тоже переменные не единственного сорта. Это всё наталкивает на рассмотрение некоторого «обобщённого языка термов», про который и стоит спрашивать, какой смысл у подстановки, связанных переменных,
-конверсии (замены связанных переменных) и прочего.
Кстати, можно рассматривать и такие языки, где любая подстановка корректна — такие, где связанные переменные заменены т. н. индексами де Брёйна. Термы таких языков не надо рассматривать с точностью до
-конверсии, что часто удобно (хотя опять же в книжках для начинающих это часто считается неудобным, и я большей частью с этим согласен). Правильной бурбакистской книжкой по логике должна была бы быть именно такая: манипулирующая деревьями произвольных сортов, собранными из произвольного набора конструкторов, говорящая об индексах де Брёйна, разбирающаяся со всем общим синтаксисом перед определением конкретных языков для логик высказываний, первого порядка и каких угодно других, а также и теорий типов до кучи. Сейчас они полезны.
-- Пн июн 24, 2019 23:53:09 --Если же некоторое знакосочетание бесконечно (а требования конечности для знакосочетаний нету)
И зря, потому что бесконечные термы обычно вводят только специфических видов и для специфических нужд. А строки кстати даже не позволяют реализовать некоторые бесконечные термы.
Я бы сказал, что свойства подстановок надо выводить из семантики. Когда мы строим формальный язык, мы всегда исходим из некоторого неформального «что я хочу получить» (и уж потом иногда получаем и формальное описание семантики, но здесь я имею в виду именно неформальное). Отношения подстановки со связыванием переменных рано или поздно сведутся к тому, что мы хотим от них.
Ответы на оставшиеся вопросы сильно зависят от того, есть ли рациональное зерно в моем представлении критериев подстановки.
Если хочется рассматривать подстановку вообще, то и стоит сначала определить класс языков, в которых она возможна. И там будет понятнее.
Я мог бы описать пример достаточно общего такого языка, но мне пальчиком будут грозить, что я вас запутаю ещё сильнее чем могли бы Бурбаки. (Но я наверно всё равно не удержусь.)