На волне недавних тем насчёт логики вспомнил про эту вещь и опишу здесь возникший велосипед (практически никакой свободы выбора деталей не было, потому это наверняка уже триста раз придумывали и просто трудно найти).
Обычно для простоты изложения [предикатные и функциональные] символы языка интерпретируются как отношения и операции на всей области интерпретации. Если при этом мы имеем дело, скажем, с операцией взятия обратного элемента в кольце, она доопределяется на элементах, у которых нет обратного, как угодно, т. к. формулы с «неправильным» использованием соответствующего символа появляться не должны. Лично мне такой подход когда-то был странен, но сейчас привычен, что всё равно не мешает рассмотреть более сложную альтернативу (которая, возможно, прошлому мне понравилась бы больше [после написания уже не так уверен]).
Для этого внесём несколько изменений в определения формулы первого порядка и интерпретации. Формулой теперь будет ещё и конструкция
для любого терма или формулы
соответствующего языка. Интерпретации коснётся куча изменений, так что определим всё с нуля. Пусть множество формул нашего видоизменённого языка —
, термов —
, переменных —
, функциональных символов —
, предикатных символов —
; множество
будем также обозначать
;
; множество логических значений
с обычными операциями
на нём.
Интерпретацией языка назовём набор из
• области интерпретации
;
• функции областей определения
, причём должно выполняться
(хотя можно этого — вместе с фиксированностью арности — не требовать, но тут это оффтоп);
• интерпретаций символов
,
, причём должно выполняться
;
• функции определённости термов
такой, что
и
;
• функции интерпретации термов
такой, что
, если правая часть равенства определена, и
— а если не
,
может быть чем угодно;
• функции определённости формул
такой, что:
,
,
,
,
,
тоже по смыслу,
в соответствие с тем, как у
,
в соответствие с тем, как у
,
;
• функции интерпретации формул
такой, что:
, если правая часть равенства определена, или что угодно вместо неё,
как для формул первого порядка в классической логике,
.
Уф, всё. Будем теперь говорить, что формула/терм
имеет значение
в данной интерпретации при значениях переменных
,
если , а в противном случае говорить, что
бессмысленно. Будем называть формулу
общезначимой, если она имеет значение
во всех интерпретациях, etc.. Сразу натыкаемся на особенность этой системы: если взять
любую формулу
,
получится не всегда общезначимой (а мы не пытались вылезать за пределы классической логики — см. определение
для формул), т. к. любые входящие туда символы могут интерпретироваться нигде не определённой функцией. Что и чем можно заменять, нуждается в уточнении. Если рассмотреть язык с равенством, аналогичная ситуация будет с получением «тавтологий» вида
.
Выход, впрочем, тоже виден — раз мы ввели в язык определённость, надо её учитывать; нельзя просто заменить в формуле
свободные вхождения какой-то переменной
на терм
, нужно взять в качестве результата «замены» сразу
; аналогично с заменой пропозициональных переменных в схемах аксиом или ещё где.
Перевод из таких языков в обычные языки первого порядка с тем же набором символов + по символу для всех
, прозрачен. В обратную сторону тоже. Вопрос о расширениях теории определением нового символа тоже, кажется, прозрачен (в определяющую
аксиому будет входить ещё и предложение
) и т. п.).
Штука кажется всё же неудобной (но, по идее, подобные вещи мы будем делать и в обычной обстановке, где в свободной записи попадаются даже штуки вида
или
— по смыслу это
). Может быть, кто-то знает лучшие описания подобного? И не забыл ли я чего-то в этом описании (кроме лени дописать про
и
)?
(Никого не склоняю этим пользоваться, и сам тоже, повторюсь, не в восторге.)
-- Пн июл 18, 2016 04:20:27 --P. S. Можно было бы слить
и
вместе, используя специальное значение для неопределённости. Тогда это станет напоминать трёхзначную логику (ту, в которой
) (и у которой довольно неудобные свойства), но только напоминать из-за того, что есть
. Кажется.
P. P. S. Предлагаю вместо
набирать менее длинное
. Если кому-то это вообще придётся набирать.