Ян Симнер о Джордже Спенсере-Брауне , Никласе Лумане и своей интерпретации их контента. https://youtu.be/DBlshvs0duo

«Законы формы» Спенсера-Брауна — пример другой нотации, которая открывает другие возможности. Она полностью покрывает формальную логику (так кажется по крайней мере на первый взгляд), но добавляет новую «диалектическую» возможность самореференции как нормы.

Это происходит за счёт того, что она умеет использовать обозначение операции в качестве входящего аргумента операции и стартовать с пустоты. И в итоге у неё нет таких проблем как «парадокс лжеца» и ему подобных.

Это работает как триггер в электронике — ячейка памяти, способная хранить одно из двух состояний. Что перенося на логику законов формы Спенсера-Брауна становится чем-то типа смены ракурса одного и того же на одно и то же.

На этой основе Симнер переходит к интерпретации того, что такое теория. По сути пытаясь сформулировать теорию теории. Теорию он определяет как объяснение «это, а не то», снижение контингентности, которая сама себя не редуцирует.

Это всё его терминология. Я бы переформулировал так: в его понимании теория — это установление границ. Если контингентность назвать как-то по-русски, то это неопределённость, всевозможность, некая вариативность в каких-то рамках. Редукция — это устранение неопределённости необходимостью, которую он трактует как акт инъюктивного языка, отдающего приказ стать дескриптивным, превратиться в теорию. Спенсер-Браун делит язык на инъюктивный и дескриптивный, соединяя их в своей нотации так, что одно перетекает в другое, когда действие порождает состояние, можно сказать. Снижение контингентности и редукция в данном случае — одно и то же.

Что касается проблемы самореференции и парадоксов, то многие языки программирования тоже не имеют таких проблем, что тоже пример возможности нотации.

Можно написать функцию и использовать её как аргумент для «неё же». Это скорее требует иных гуманитарных имён, потому что обычно это описывают как «функция, которая вызывает саму себя», но это принципиально не так.

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

Самореференция тут есть только в плохой терминологии инженерной культуры, где об этом идёт речь. Принципиально тут есть объемлющий операционный ракурс, с позиции которого есть описание инструкции и акт её исполнения. Поэтому же существует пресловутый stack overflow (переполнение), ибо каждый запуск такой функции — полностью уникален, имеет собственный хронотоп, есть накопление количества «её» запусков в рамках какого-то объёма памяти, который конечен.

Если показать это на аналогичном примере ещё какой-то формальной системы, то когда мы говорим «иди прямо да прямо» (или «направо и затем направо») — мы не имеем в виду, что придёшь туда же, откуда вышел.