Глава II.1 установила, чем первична единица: она есть число первого акта различения, отпечаток совершённого. Но первичность единицы — ещё не натуральный ряд. Установить, что счёт начинается с единицы, и построить из этой единицы весь ряд натуральных чисел — две разные задачи. Первая решена; вторая — предмет настоящей главы и трёх последующих.
ToS приходит к натуральному ряду не одним путём, а четырьмя — кардинальным, иерархическим, информационным и структурным. Что путей именно четыре и что все они ведут к одному и тому же — не случайность; смысл этой множественности раскроется в Главе II.5. Настоящая глава открывает первый путь — кардинальный. Он самый прямой: если единица есть один акт различения, то число есть актов различения, и формой, в которой актов берутся как одно число, служит список. Кардинальный путь превращает интуицию § 1.6 — счёт как фиксация числа совершённых различений — в работающую формальную конструкцию.
От одного акта к нескольким
Что значит «несколько актов»
Единица есть один акт различения (§ 1.2). Чтобы построить из неё числовой ряд, нужно понять, что значит несколько актов — и понять это точно, потому что здесь скрыт нетривиальный шаг.
«Два акта различения» — что это? Соблазнительно ответить: два акта — это просто акт и ещё акт, положенные рядом. Но такой ответ недостаточен, и недостаточность его поучительна. Чтобы у нас было два акта, а не один, нужно, чтобы первый акт и второй были различены — иначе они слились бы в один, и счёт не сдвинулся бы с единицы. А различить первый акт и второй — значит совершить ещё одно различение: различение между «актом, уже совершённым» и «актом, совершаемым теперь».
Отсюда видно, что счёт — не пассивное складывание готовых актов в кучу. Счёт сам есть деятельность различения. Чтобы перейти от одного акта к двум, совершают новое различение — различение самих актов между собой. «Несколько актов» возможно потому, что акт различения совершаем повторно, и каждое повторение, будучи новым актом, само поддаётся отличению от предыдущих.
Повторимость акта
Свойство, на котором держится весь кардинальный путь, назовём прямо: акт различения повторим. Совершив акт, можно совершить его снова — и снова. Ничто в устройстве акта не ограничивает числа повторений: акт различения не «расходуется», не «истощается», совершение его не закрывает возможности совершить его ещё раз.
Повторимость нужно понять верно, иначе она исказится в одну из двух сторон.
Повторимость не есть тождественное воспроизведение. Повторить акт — не значит получить буквально тот же самый акт. Второй акт отличен от первого уже тем, что он второй — что он совершён относительно положения, в котором первый акт уже есть. Повторение акта различения само создаёт различие — различие порядка, различие «прежде» и «теперь». Если бы повторение давало тождественный акт, никакого «двух» не возникло бы; возникает оно именно потому, что повторённый акт занимает иное место в порядке, чем исходный.
Повторимость не есть и наличие готового запаса актов. Сказать «акт повторим» не значит сказать, что где-то уже лежат все будущие повторения — бесконечный запас актов, ожидающих использования. Готового запаса нет. Повторимость есть возможность совершить ещё один акт, а не наличие всех актов сразу. Это различение — между возможностью продолжения и наличием завершённого — существенно, и оно вернётся в § 2.7 как первое рабочее применение принципа . Пока достаточно отметить: акт повторим означает «совершив актов, можно совершить -й», а не «все акты уже совершены».
Рекурсия счёта
Соединив сказанное, получаем структуру, лежащую в основании счёта.
Есть первый акт различения — единица. Он повторим: можно совершить второй акт. Но второй акт, чтобы быть вторым, требует различения с первым — а это различение само есть акт. И этот акт тоже повторим: можно перейти к третьему, что снова потребует различения с уже совершёнными. Структура рекурсивна: каждый шаг счёта опирается на предыдущие и порождает основание для следующего.
Эту рекурсию предстоит проследить до её формальной структуры. Рекурсия счёта несёт в себе три черты сразу: актов несколько (множественность); они упорядочены — есть первый, второй, -й (порядок, ); и все они вместе берутся как одно число (единство). Структура, в которой эти три черты соединены, не выбирается из набора возможных — она вынуждена тем, что рекурсия счёта уже собой представляет. Проследив, к чему рекурсия приводит, глава обнаружит эту структуру; обнаружится список. К нему глава теперь и переходит — не выбирая его, а прослеживая деривацию до него.
Список как форма множественности
От рекурсии к структуре
Глава не выбирает форму для множественности актов — она прослеживает деривацию. Рекурсия счёта (§ 2.1.3) уже есть некоторая структура; задача в том, чтобы распознать её, дать ей точное имя, а не подобрать ей удачное вместилище.
Что рекурсия счёта собой несёт, установлено в § 2.1: акты совершаются один за другим (повторимость, § 2.1.2); каждый следующий упорядочен относительно предыдущих — второй есть второй относительно первого (, § 2.1.1); и всё совершённое берётся как одно число (§ 2.1.3). Эти черты не пожелания, которые форме надлежит удовлетворить, — это то, чем рекурсия счёта уже является. Структура, отвечающая им, тем самым не выбирается: она вынуждена. Глава лишь доходит до неё по деривации и называет.
Структура, к которой деривация приводит, есть список. Ниже это показано в несколько шагов: сначала — что множество, привычная математике форма множественности, не годится для первичного кардинального пути (§ 2.2.2); затем — что список деривации отвечает (§ 2.2.3); далее тот же итог подтверждается разбором обеих структур аппаратом E/R/R (§ 2.2.4); наконец — что список отвечает деривации не приблизительно, а в точности (§ 2.2.6). Разбор множества здесь не сравнение конкурентов, из которого список выходит победителем, а проверка: убедиться, что обнаруженное деривацией есть именно список и ничто другое.
Почему множество не годится для первичного пути
Множество — форма, в которую математика привычно собирает многое. Сосчитать множество — найти его мощность; натуральное число в теоретико-множественном построении и есть мощность, либо определённое множество (§ 1.1). Привычка подсказывала бы взять множество и здесь. Но для первичного кардинального пути ToS множество не подходит — и не подходит по трём независимым основаниям. Подчеркнём сразу: речь не о том, что ToS изгоняет множество из математики. Множество остаётся вполне законным математическим объектом; оно не годится лишь на роль первичной формы кардинального пути — той структуры, в которой счёт впервые осуществляется. Чем множество является в ToS — режимом рассмотрения, производным от списка (мотив , Глава I.7), — сказано ниже; здесь же показывается, отчего оно не может стоять в основании счёта.
Множество статично. Множество есть собрание, все элементы которого даны сразу: не «строится» от к — оно есть готовая совокупность. Это онтология готового. Но деривация ToS на первичном уровне готового не содержит — в её основании акт и его повторение (Глава I.7, процессность). Множество навязало бы актам различения статус готовой совокупности, которого деривация им не даёт.
Множество не несёт порядка. В множестве нет первого, второго, третьего элемента — и суть одно множество. Порядок множеству безразличен. Но рекурсия счёта (§ 2.1.1) упорядочена по самому своему устройству: второй акт есть второй относительно первого, и без этого «относительно» не возникает самого «двух». Структура, к которой ведёт деривация, несёт порядок (); множество его не несёт — и потому деривации не отвечает.
Множество в ToS производно. Глава I.7 ввела мотив : множества в ToS не первичны — они суть режим рассмотрения, способ взять нечто, отвлёкшись от порядка и кратности. Натуральное число — объект, к которому деривация приходит прежде режима; строить его через множество значило бы поставить производное прежде того, из чего оно производно. Порядок обоснования был бы нарушен.
Три основания указывают в одно: множество не есть структура, в которой кардинальный путь может начаться. Не потому, что множество «плохо» — как режим рассмотрения оно вполне законно (§ 1.8.5, ), — а потому, что рекурсия счёта несёт порядок и процессуальность, а множество как первичная форма не несёт ни того, ни другого. Множество исключено не из математики ToS и не как допустимый объект — оно исключено лишь как первичная форма кардинального пути. Позже, как режим рассмотрения списка, оно в ToS законно возникает; но в основании счёта стоять не может.
Почему деривация приводит к списку
То, что деривация исключает множество, ещё не указывает, к чему она приводит. Указывает следующее: структура, отвечающая рекурсии счёта, лишена всех трёх несоответствий — и эта структура есть список.
Список последователен. Список не дан сразу — он строится: элемент за элементом, каждый присоединяется к уже построенному. Пустой список, список из одного, из двух — это ступени построения, а не готовые совокупности разного размера. Список есть онтология процесса, и потому он согласован с процессуальной природой акта различения: как акты совершаются один за другим, так и элементы списка добавляются один за другим.
Список несёт порядок. В списке есть первый элемент, второй, -й; список и список — разные списки. Порядок не приписан списку извне как дополнительная структура — он есть часть того, что список есть. И этот порядок — ровно : закон порядка, выведенный в Главе I.3, здесь получает свою рабочую форму. Когда мы говорим «три различия», список удерживает не только их число, но и то, что они идут первым, вторым, третьим, — а это, как показал § 2.1, и есть условие самого «трёх».
Список не вводит готовой совокупности. Список из элементов не предполагает «множества всех элементов» как отдельной сущности — он есть просто результат актов присоединения. Никакого перехода к режиму , никакого обращения к производному. Список остаётся на том же уровне первичности, что и акт, чьим отпечатком он служит.
Множество есть статическая совокупность готового, безразличная к порядку и производная по ; для удержания упорядоченной последовательности совершаемых актов оно несёт не ту структуру. Список последователен, упорядочен () и не вводит готовой совокупности. Поэтому формой кардинального пути служит список, а не множество.
Список и множество в разборе E/R/R
Сказанное можно увидеть отчётливее, если разобрать список и множество аппаратом, который Глава I.4 дала для всякой системы, — разбором E/R/R. Глава I.4 установила: всякая система имеет три неотделимых аспекта — Elements (элементы, субстрат системы), Roles (роли, позиции, которые элементы занимают) и Rules (правила, удерживающие систему как систему), — и что онтологически они порождают себя в порядке Rules Roles Elements. Приложим этот разбор к списку и к множеству; ничего нового об E/R/R здесь не вводится — лишь применяется уже данное.
Список как система E/R/R. Список различий, разобранный по трём аспектам, даёт следующее. Rules — правило следования: каждый элемент, кроме первого, стоит непосредственно после одного определённого элемента. Это правило и есть рабочая форма — закона порядка. Roles — позиции, которые правило следования открывает: «первая», «вторая», «-я»; роль здесь расчленена, позиций столько же, сколько элементов, и каждая отлична от прочих своим местом в следовании. Elements — сами различия, занимающие эти позиции. Три аспекта налицо и неотделимы: правило следования без позиций было бы пустой схемой, позиции без различий — незаполненными, различия без позиций — грудой без порядка. Список есть полная система E/R/R: все три аспекта в нём работают.
Множество как система E/R/R. Множество тех же различий по трём аспектам даёт иное. Elements — те же различия. Roles — но здесь роль одна и нерасчленённая: «член множества»; все элементы несут одну и ту же роль, никакая позиция не отлична от другой. Rules — и здесь нужна точность. Было бы неверно сказать, что у множества нет аспекта Rules вообще: у множества есть свои правила — правило членства (что значит быть элементом) и правило экстенсионального отождествления (два множества равны, когда у них одни и те же элементы), а в развёрнутых теориях — и правила образования. Аспект Rules у множества не исчезает. Исчезает одно определённое правило — правило следования, то, которое в списке удерживает порядок: <<каждый элемент, кроме первого, стоит после одного определённого>>. Сравнив с разбором списка, видим точно, что произошло: у множества погашено не Rules вообще, а именно правило следования; вместо него остаются правила членства и экстенсионального отождествления. И вместе с правилом следования — по порождающему порядку Rules Roles Elements — гаснет расчленённость Roles: нет правила следования — нет и упорядоченных позиций, остаётся одна общая роль <<член>> и субстрат под ней.
Что отсюда видно. Множество не есть система, чужеродная списку. Но было бы неточно сказать, что множество есть тот же список: один и тот же набор значений получается из разных списков — , , все дают одно множество . Точнее сказать, что множество есть support списка — результат забывания того, чем эти списки различаются: порядка и кратности. Переход удобно представить двумя ступенями:
Первая ступень забывает порядок (список мультимножество), вторая — кратность (мультимножество множество). Именно это означал мотив (§ 1.8.5): множество как режим рассмотрения списка, отвлекающийся от порядка и кратности. Разбор E/R/R даёт первой ступени точную форму: переход от списка к мультимножеству есть гашение правила следования — того аспекта Rules, который удерживал порядок.
И тогда видно, почему деривация счёта приводит именно к списку. Рекурсия счёта (§ 2.1) существенно несёт правило следования: второй акт есть второй по следованию за первым. Структура, к которой ведёт деривация, обязана иметь правило следования. Список это правило имеет; множество — есть та же структура с погашенным правилом следования (правила членства и отождествления при этом остаются). Деривация, требующая следования, приводит к списку — к системе, в которой правило следования работает; множество ей отвечать не может не оттого, что оно «беднее» вообще, а оттого, что в нём погашено ровно то правило, которое деривация требует.
В разборе E/R/R список есть полная система: Elements — различия, Roles — упорядоченные позиции, Rules — правило следования (). Множество есть тот же список с погашенным правилом следования, отчего расчленённость ролей сводится к одной общей роли «член»; это и есть режим . Деривация счёта несёт правило следования и потому приводит к полной системе — к списку.
Список как отпечаток повторимого акта
Стоит увидеть, насколько точно список отвечает рекурсии счёта из § 2.1.3 — настолько точно, что список можно назвать прямым отпечатком повторимого акта.
Повторимость акта (§ 2.1.2) говорит: совершив акт, можно совершить ещё один. Список устроен так же: имея список, можно присоединить к нему ещё один элемент. Операция присоединения элемента к списку есть формальный аналог совершения ещё одного акта различения. Первому акту отвечает список из одного элемента; второму акту — присоединение второго элемента; и так далее.
И рекурсивность совпадает. Счёт рекурсивен (§ 2.1.3): каждый шаг опирается на предыдущие. Список рекурсивен по самому своему устройству: список есть либо пустой список, либо элемент, присоединённый к списку, — определение, в котором список ссылается на список. Рекурсия счёта и рекурсия списка — одна и та же рекурсия, и потому список не просто подходящая форма, а форма, в точности воспроизводящая структуру считаемого.
Что список устроен рекурсивно — свойство не только содержательное, но и формальное: в этой рекурсивности коренится принцип индукции, к которому глава придёт в § 2.6. Пока отметим лишь, что деривация доведена до своей структуры: рекурсия счёта есть список. Остаётся придать списку точную формальную запись — и через неё определить, что значит «число есть в системе». Это предмет следующих двух разделов.
Технический предикат: distinction_count
Список различий и длина как акт подсчёта
Деривация привела к списку как структуре множественности актов (§ 2.2). Придадим этому точную запись.
Акт различения записан в ToS как Distinction (Глава I.2).
Список актов различения есть, соответственно, объект типа
list Distinction — список, элементами которого служат
различия. Такой список есть отпечаток некоторого числа совершённых
актов: списку из различий отвечают совершённых различений,
взятых в их порядке.
Кардинальный путь ведёт к числу через длину такого списка — и здесь нужна точность, иначе в построение проникнет чуждая ToS предпосылка. Длина списка не есть свойство, присущее списку как готовому объекту, — нечто, что в списке «лежит» и что остаётся лишь «считать». Готового, в котором свойства лежат заранее, ToS на первичном уровне не знает (Глава I.7, процессность; § 1.7.2: всякая характеристика есть совершённое различение). Длина списка есть результат акта — акта подсчёта: акта, который проходит список различие за различием и регистрирует, сколько совершённых актов в нём встречено. Длина не присуща списку — она получается, когда акт подсчёта совершён.
Это прямое продолжение § 1.6: считать — значит фиксировать число
совершённых различений. Длина списка различий и есть это
зафиксированное число: сколько совершённых актов регистрирует подсчёт,
пройдя список. Понятие длины, таким образом, не привносит в ToS
ничего нового — оно есть приложение счёта-как-фиксации к списку.
Формально подсчёт записывается функцией length; но функция
эта не «считывает присущее списку число», а производит число
как итог прохождения списка. Через длину списка различий — через
этот итог подсчёта — и вводится первое формальное понятие настоящей
главы.
Определение distinction_count
ToS вводит предикат, связывающий натуральное число со списками различий, подсчёт которых даёт . Формально он записывается так:1
Definition distinction_count (n : nat) : Prop :=
exists Ds : list Distinction, length Ds = n.Прочитаем определение. distinctioncount — это
предикат на натуральных числах: каждому он сопоставляет
высказывание (Prop). Высказывание это таково: существует
список различий, длина которого равна . Предикат
distinctioncount; истинен, если такой список
существует, и ложен в противном случае.
Существенно, чем это определение не является. Оно не есть
переопределение натурального числа: здесь — уже готовое
натуральное число типа nat, и предикат лишь что-то о
нём высказывает. Оно не есть и утверждение «число равно длине
списка»: предикат не приравнивает к длине, а спрашивает о
существовании списка нужной длины. distinction_count —
именно предикат: характеристика, которой число либо обладает, либо
нет.
Нуль и пустой список
Применим определение к нулю — случай поучительный, и поучительный именно тем, как в нём ведёт себя нуль.
Истинно ли distinction_count;? По определению
это значит: существует ли список различий, подсчёт которого даёт нуль?
Такой список есть — это пустой список, список без единого элемента.
Формально это засвидетельствовано:
Lemma zero_distinctions : distinction_count 0.
Proof. exists []. reflexivity. Qed.Доказательство предъявляет пустой список ([]). Но здесь важно
верно прочесть, что именно происходит при его подсчёте, — иначе нуль
будет понят неправильно.
Подсчёт есть акт прохождения списка с регистрацией встреченных совершённых актов (§ 2.3.1). А длина есть итог совершённого подсчёта. Применим это к пустому списку.
Запрос «какова длина пустого списка?» есть запрос об итоге подсчёта,
и запрос этот законен: его предмет — пустой список — есть
сформированная система (E/R/R, § 2.2.4), полноправная структура типа
list Distinction, к которой подсчёт применим. Достаточное
основание () для акта подсчёта здесь есть: основанием
служит то, что предмет запроса является списком. Подсчёт законно
совершается — и при прохождении пустого списка не встречает ни
одного элемента. Поэтому его итог есть : не положительная длина
ряда совершённых актов, а граничный результат корректно
совершённого подсчёта, фиксирующий, что встреченных различий не было.
Что же тогда есть нуль? Нуль здесь не есть число совершённого; он есть значение подсчёта, завершившегося без встречи элемента. Подсчёт состоялся (основание было — предмет есть список), прошёл список до конца и не встретил ни одного акта — и его итогом стал . Это в точности нуль Главы II.1: не предмет и не свойство, не положительный счёт совершённого, а граничная отметка — результат подсчёта, проявляющий отсутствие встреченных различий (§ 1.3.2). Пустой список не несёт «положительной длины»; он есть отпечаток того, что не совершено ничего, и нуль есть итог подсчёта, этот факт зарегистрировавшего.
Здесь стоит ответить на вопрос, который сам собой возникает: почему запрос длины к пустому списку даёт нуль, а не ошибку? Различие двух исходов не случайно, и оно проясняет природу нуля. Ошибкой запрос завершается тогда, когда он бессмыслен — когда обращается к качеству, которого у предмета нет даже в принципе. Спросить длину у того, что вообще не список, — у акта, у числа, — значит задать вопрос, не имеющий логической связи с предметом; такой вопрос не «не получил значения», он не имел права быть заданным, и ответ на него — ошибка. Запрос же длины к пустому списку не таков. Пустой список есть список — сформированная система, для которой подсчёт определён. Запрос к нему осмыслен и выполним: подсчёт законно совершается и доходит до конца. Его итог — — есть полноправный результат, а не отказ: подсчёт прошёл список и зарегистрировал, что встреченных элементов не было. Оттого пустой список даёт нуль, а не ошибку: подсчёт определён и выполнен (значит не ошибка), но встреченных различий не было (значит не положительное значение, а граничный нуль). Ошибка лежала бы за границей осмысленного запроса; нуль стоит внутри нея — как законный итог подсчёта, не встретившего ни одного акта.
Здесь полезно прямо назвать формальный факт, на который всё опирается.
Функция length тотальна: всякому списку-терму, включая
nil, она сопоставляет терм типа nat, и
length nil вычислительно редуцируется к 0 — оттого
zero_distinctions и доказуема. Это не побочное
обстоятельство, которое онтологии приходится «обходить», — напротив,
это и есть формальная сторона сказанного: подсчёт пустого списка
определён и его результат есть . Онтологическое чтение лишь
называет этот — не «измеренной положительной длиной», а
граничным итогом подсчёта, не встретившего элементов. Синтаксис
возвращает терм 0; онтология читает этот 0 как
границу ряда положительных длин, а не как положительный счёт
совершённого.
Три смысла, в которых здесь появляется, удобно различить таблицей:
| Уровень | Что такое |
|---|---|
тип nat | конструктор O, базовая точка типа |
функция length | результат подсчёта пустого списка (length nil редуцируется к 0) |
| онтология ToS | граница положительного счёта — итог подсчёта, не встретившего ни одного совершённого акта |
Первые два уровня — формальные и бесспорные; третий — онтологическое чтение, которое не оспаривает первых двух, а лишь называет полученный границей, не положительным счётом.
Отсюда видно, что истинность distinction_count;
не означает, будто нуль есть число совершённых актов
различения. Глава II.1 (§ 1.3) установила обратное: нуль не есть счёт
совершённых актов. Противоречия здесь нет — и увидеть, почему, важно
для всей главы.
distinctioncount; истинно, и истинно
законно: список nil существует, подсчёт его определён и
length nil есть 0. Но что этим
засвидетельствовано — не «существует список, чей подсчёт дал
положительную длину нуль», а «существует список, подсчёт которого
законно завершился, не встретив ни одного элемента, и итог этого
подсчёта есть нуль». Засвидетельствовать граничный итог
подсчёта — не то же самое, что сосчитать совершённое. Пустой
список не есть список, в котором «совершено нуль актов» как некое
содержательное событие, — пустой список есть список, в котором
не совершено ничего. Совершённого различения в нём нет; есть
лишь подсчёт, прошедший список и не встретивший элементов, с итогом
нуль. distinctioncount честно этот итог
фиксирует — но фиксирует именно граничный результат подсчёта, а не
положительный счёт совершённого.
Технический слой
Сказанное помещает distinction_count на вполне
определённое место — на то, что Глава I.6 назвала
техническим слоем формальной работы.
distinctioncount отвечает на технический вопрос:
для каких существует список различий, подсчёт которого даёт ?
Это вопрос о списках и об итогах их подсчёта — о том, какие итоги
подсчёта вообще достижимы. Вопрос законный и нужный: без подсчёта
списков не обойтись. Но это не вопрос о счёте совершённых актов
различения. distinctioncount не несёт
онтологической нагрузки счёта совершённого — он регистрирует итог
подсчёта, в том числе итог «не встречено ничего», отвлекаясь от того,
что список различий есть отпечаток совершённых актов.
Именно поэтому distinctioncount один, сам по себе,
кардинального пути не составляет. Кардинальный путь ведёт к натуральному
ряду как к отпечатку совершённых различений — а счёт
совершённого, как установила Глава II.1, начинается с единицы, и нуль в
него не входит. distinctioncount, для которого
истинность при нуле есть лишь граничный итог подсчёта пустого списка,
на эту роль не подходит: он отвечает на другой вопрос — о
подсчёте вообще, а не о счёте совершённых актов.
distinction_count — технический предикат: он
сообщает, для каких существует список различий, подсчёт которого
даёт . Для нуля он истинен — но истинен потому, что подсчёт
пустого списка законно даёт результат , а не потому, что нуль есть
число совершённых актов. Это регистрация формы данных, не счёт
совершённого. Кардинальный путь требует предиката иного — такого,
который считает совершённые акты и потому начинается с единицы.
Такой предикат ToS вводит — к нему, и через него к собственно кардинальному пути, глава переходит в следующем разделе.
Онтологический предикат: distinctioncountfrom_one
Чего недостаёт техническому предикату
Технический предикат distinction_count (§ 2.3) сообщает,
для каких чисел существует список различий нужной длины. Кардинальному
пути этого недостаточно, и недостача — ровно в одном: технический
предикат считает длину списка, а кардинальный путь должен
считать совершённые акты различения.
Различие не словесное. Подсчёт пустого списка законно даёт результат
(§ 2.3.3): подсчёт определён, прошёл список и не встретил ни
одного элемента. Совершённых актов в пустом списке нет: пустой список
есть отпечаток того, что не совершено ничего. Технический
предикат distinction_count засчитывает нулю быть
граничным итогом подсчёта пустого списка; кардинальный путь, считая
совершённые акты, не находит в пустом списке ни одного
совершённого акта и потому начинается с единицы — с первого
совершённого различения. Глава II.1 (§ 1.3) установила это как
онтологическое положение; теперь оно должно получить формальный
предикат, который ему отвечает.
Определение distinctioncountfrom_one
Такой предикат ToS вводит — предикат счёта совершённых актов. Формально он записывается так:2
Definition distinction_count_from_one (n : nat) : Prop :=
exists Ds : list Distinction, length Ds = n /\ 1 <= n.Предикат distinctioncountfromone отличается от
технического distinctioncount одним добавленным
условием — . Прочитаем: число удовлетворяет предикату,
если существует список различий длины и при этом не
меньше единицы. Первое условие — то же, что у технического
предиката: существование списка нужной длины. Второе — —
и есть формальная запись того, что счёт совершённого начинается с
единицы.
Здесь нужна точность относительно того, что этот предикат
формально собой представляет. По записи
distinctioncountfrom_one отличается от
технического предиката только конъюнктом — ничем
более. Он не проверяет, что элементы списка суть именно
<<совершённые акты>>; не хранит истории их совершения; не различает
стадий; не требует, чтобы акты были попарно различны. Формально это —
фильтр положительности: предикат, отсекающий нулевую границу и
пропускающий всякое , для которого существует список нужной
длины. Поэтому его онтологический смысл — счёт совершённых
актов различения — не содержится в одной лишь формальной записи; он
задаётся интерпретацией главы, прочитывающей список различий как
отпечаток совершённых актов. Формальная запись и онтологическое чтение
здесь работают вместе: запись отделяет положительный счёт от нулевой
границы, а интерпретация наделяет этот положительный счёт смыслом
счёта совершённого.
Добавленное условие невелико по виду и существенно по смыслу. Оно
проводит границу, установленную в Главе II.1: нуль — не счёт
совершённых актов, а граница ряда (§ 1.3). Технический предикат этой
границы не проводил и засчитывал нуль;
distinctioncountfrom_one её
проводит. Это и позволяет читать его онтологически — как
предикат, отвечающий не на вопрос о длинах списков вообще, а на вопрос
<<сколько актов различения совершено>>. Подчеркнём ещё раз: само это
онтологическое чтение — работа интерпретации, а формальный вклад
предиката состоит в условии , отделяющем положительный счёт
от нулевой границы.
Нуль выпадает, единица входит
Посмотрим, что предикат
distinctioncountfrom_one
говорит о двух граничных случаях — о нуле и о единице. О каждом
устанавливается ровно то, чего требует онтология Главы II.1; формальная
запись этих утверждений приводится ниже.
Нуль не есть счёт.
Theorem zero_not_a_count :
~ distinction_count_from_one 0.
Proof.
intro H. destruct H as [_ [_ Hge]]. lia.
Qed.Теорема zeronotacount утверждает: предикат
distinctioncountfromone не выполнен для
нуля. Доказательство коротко: если бы нуль удовлетворял предикату, в
числе условий было бы — а это ложно, и тактика
lia закрывает случай. Содержательно теорема говорит:
нуль не есть счёт совершённых актов различения. Не «список длины нуль
не существует» — он существует (§ 2.3.3), — а именно: нуль не есть
число совершённого, потому что совершённого в нуле нет.
Единица есть первый счёт.
Theorem first_count_is_one :
distinction_count_from_one 1.
Proof.
exists [distinction_of True].
split; [reflexivity | lia].
Qed.{
Теорема firstcountis_one утверждает: предикат
выполнен для единицы. Доказательство предъявляет список из одного
различия — [distinction_of True], список с
единственным элементом, — и проверяет два условия: длина его равна
единице (reflexivity), и (lia). Оба
выполнены. Единица есть первый счёт совершённых актов: ей отвечает
список из одного совершённого различия.
}
Два результата вместе очерчивают начало кардинального пути точно так, как его описала Глава II.1: нуль выпадает из счёта совершённого, единица есть первое число этого счёта. То, что в § 1.3 было онтологическим положением, здесь стало доказанной парой теорем.
Различие двух предикатов удобно свести в таблицу:
| Предикат | Формальная запись | Что считает | Нуль |
|---|---|---|---|
distinction_count | exists Ds, length Ds = n | техническую длину списка | допускает |
distinction_count_from_one | exists Ds, length Ds = n /\ 1 <= n | положительный счёт актов (при онтологическом чтении) | исключает |
Таблица делает явной природу различия: формально оно сводится к одному конъюнкту , а содержательно — к границе между подсчётом списков вообще и счётом совершённого, начинающимся с единицы.
Что значит «число есть в системе»
Предикат distinctioncountfrom_one позволяет
сказать точно, что означает в ToS присутствие натурального числа.
Число есть в системе ToS постольку, поскольку существует список из совершённых различий и . Не «число дано как элемент готового множества» и не «число постулировано аксиомой» — а: число есть, поскольку реализуемо как отпечаток совершённых актов различения.
Это — онтологический ход, и стоит назвать его прямо. Бытие числа в ToS есть бытие через реализацию. Число не лежит готовым; число есть постольку, поскольку может быть предъявлен список различий, который его реализует. Существование числа поставлено в зависимость от возможности его реализации актами различения — ровно как существование всего в ToS поставлено в зависимость от акта (, Глава I.1).
Отсюда видно, в каком смысле кардинальный путь есть путь к натуральному ряду, а не его постулирование. Путь не объявляет готовым — он показывает, как каждое натуральное число получает бытие в ToS: через реализацию списком совершённых различий. Остаётся показать, что этот путь проходим для всякого натурального числа — что нет числа, которое не реализовалось бы. Это и есть содержание следующего раздела.
distinctioncountfromone — предикат
кардинального пути: формально он есть фильтр положительности
(существование списка длины при ), а при онтологическом
чтении главы — счёт совершённых различий. Число удовлетворяет
ему, если существует список из различий и . Нуль ему не
удовлетворяет (zeronotacount), единица
удовлетворяет (firstcountis_one). Быть числом в
ToS значит быть реализуемым как отпечаток совершённых актов
различения.
Реализуемость каждого числа
Что осталось показать
Предыдущий раздел установил, что значит присутствие числа в ToS: число есть в системе постольку, поскольку реализуемо как отпечаток совершённых актов различения — как список из различий, для которого (§ 2.4.4). Это определение присутствия. Но определение само по себе ещё не гарантирует, что присутствует весь натуральный ряд.
В самом деле: предикат distinctioncountfromone мог бы оказаться выполнен лишь для
некоторых чисел. Доказанное в § 2.4 покрывает пока единицу
(firstcountisone). А
остальные? Реализуема ли двойка — то есть существует ли список ровно
из двух различий? А число сто? А число, записанное тысячей цифр?
Кардинальный путь будет путём к натуральному ряду лишь тогда,
когда показано: никакое натуральное число не выпадает — для
всякого список из различий реализуем.
Это и предстоит показать. Утверждение, к которому идёт раздел, таково: для любого предикат счёта от единицы выполнен. ToS устанавливает его как теорему; формально она записывается так:
Theorem positive_nat_is_distinction_count : forall n,
(1 <= n)%nat -> distinction_count_from_one n.Прочитаем: каково бы ни было натуральное число , если , то удовлетворяет предикату счёта от единицы — список из различий реализуем. Раздел разбирает, как это устанавливается и что отсюда следует.
Шаг наращивания: ещё одно различение
Реализуемость каждого числа держится на одном простом шаге — шаге наращивания. Он есть формальный отпечаток повторимости акта (§ 2.1.2): совершив некоторое число актов, можно совершить ещё один.
Присоединение нового различия к списку ToS записывает так:
Definition add_distinction (Ds : list Distinction) (D : Distinction) :=
D :: Ds.
Theorem add_distinction_increments : forall Ds D,
length (add_distinction Ds D) = S (length Ds).Первая из приведённых записей,
add_distinction, ставит новое различие в
начало списка — технически это D :: Ds,
присоединение к голове. Это требует оговорки о порядке. В прозе главы
акты совершаются <<первый, второй, третий>> в хронологическом смысле;
но D :: Ds помещает новый акт не в конец, а в голову списка.
Поэтому список различий здесь удобнее читать как стек: голова
хранит последний совершённый акт, хвост — более ранние. Это
не влияет на длину — а кардинальному пути нужна именно длина, — но
важно для интерпретации порядка: <<первый элемент списка>> при таком
чтении есть последний по времени акт. Если же где-то понадобится
хронологическое чтение слева направо, его даёт альтернативная операция
присоединения в конец списка (snoc); кардинальный путь
настоящей главы в ней не нуждается, поскольку опирается на длину, а не
на направление порядка.
Теорема
adddistinctionincrements проверяет
очевидное и существенное: подсчёт наращённого списка даёт на единицу
больше, чем подсчёт исходного.
Присоединить различие — значит увеличить счёт на один. Это и есть
формальная запись того, что совершить ещё один акт различения значит
сделать счёт на единицу большим.
Чем различаются повторения акта.
Здесь стоит снять одно возможное недоумение. В формальных
доказательствах списки различий строятся из одного и того же
канонического элемента: firstcountisone
предъявляет [distinction_of True], а
succisnewdistinction присоединяет
distinction_of True к уже имеющемуся списку. Список из трёх
различий есть, таким образом,
[distinction_of True; distinction_of True; distinction_of True] —
три вхождения одного значения. Значит, новизна акта
кодируется здесь не различием содержания: два элемента списка
могут быть одним и тем же каноническим различением. Их различие как
актов задаётся позицией — occurrence в списке: первое
вхождение и второе вхождение суть разные повторения акта, даже когда
их внутреннее содержание совпадает. Это согласуется с Главой II.1
(§ 1.3, где новизна акта задавалась не различием значения, а
повторением) и прямо опирается на Закон Порядка : именно
порядок и позиция, а не содержание элемента, делают список из трёх
повторений списком из трёх, а не из одного. Счёт считает
вхождения, и потому повторимость одного акта — а не разнообразие
содержаний — есть то, на чём держится кардинальный путь.
Отсюда — ключевой шаг кардинального пути: если число реализуемо, то реализуемо и число . ToS устанавливает это так:
Theorem succ_is_new_distinction : forall n,
distinction_count_from_one n ->
distinction_count_from_one (S n).succisnew_distinction
говорит: из реализуемости следует реализуемость .
Доказательство прямое — взять список, реализующий , и присоединить
к нему ещё одно различие; наращённый список реализует .
Содержательно теорема говорит то, что Глава II.1 назвала бы переходом
к следующему числу: следующее число есть нынешнее плюс ещё один
совершённый акт. Операция следования — не приписывание извне, а
совершение нового различения.
От единицы ко всякому числу
Теперь обе части налицо. Единица реализуема — это
firstcountisone (§ 2.4.3):
список из одного различия предъявлен. И всякий переход от к
сохраняет реализуемость — это
succisnewdistinction
(§ 2.5.2). Соединение этих двух и даёт реализуемость каждого числа.
ToS устанавливает соединение теоремой
positivenatisdistinction
count; её доказательство устроено так. Берётся
произвольное . Если есть единица — реализуемость дана
прямо (firstcountisone).
Если больше единицы — оно есть для некоторого ;
по предположению реализуемо, и тогда по
succisnewdistinction
реализуемо и . Так реализуемость, имея началом единицу,
дотягивается до всякого .
Реализуемо каждое натуральное число: для всякого существует список из совершённых различий. Это держится на двух положениях — единица реализуема, и переход от к сохраняет реализуемость, — соединение которых дотягивает реализуемость от единицы до любого числа.
Здесь необходима оговорка о статусе доказанного. Формальная теорема
positivenatisdistinctioncount
работает внутри уже имеющегося типа nat: она берёт
произвольное n : nat и показывает, что при для него
существует список различий длины . Поэтому теорема не
создаёт тип натуральных чисел заново и не строит nat из
Distinction; она показывает, что каждое положительное значение
уже данного типа nat реализуемо как длина списка
различий. Результат — реализационный, а не типообразующий: ToS не
утверждает, будто выводит сам тип nat, а утверждает, что
кардинальный путь проходим для всякого положительного nat.
Это снимает возможное возражение <<вы пользуетесь nat, чтобы
построить nat>>: nat как тип берётся готовым из
Rocq; вклад ToS — не построение этого типа, а онтологическое
прочтение его положительных значений как отпечатков совершённых
различий.
То, что доказательство устроено именно так — начало плюс сохраняемый переход, — не случайно: это форма индукции. Откуда индукция берётся в ToS и почему она здесь не привнесена извне, а вырастает из повторимости акта, разбирает следующий раздел. Здесь же отметим лишь, что доказанная реализуемость каждого числа уже опирается на индуктивную форму — и тем самым подводит к вопросу о ней.
Каждое число — но не «все числа сразу»
Реализуемость каждого числа нужно прочесть точно, иначе из неё вычитают больше, чем в ней есть. Теорема говорит: для всякого список из различий реализуем. Она не говорит, что все эти списки реализованы сразу — что где-то есть готовая совокупность, содержащая разом списки всех длин.
Различие здесь существенно, и оно прямо связано с тем, как ToS понимает бесконечность. «Реализуемо каждое число» означает: какое число ни возьми, для него список реализуем — акт его построения может быть совершён. Это утверждение о каждом отдельном числе, взятом порознь. «Реализованы все числа сразу» означало бы иное: будто все списки уже построены и собраны в один завершённый объект. Первое ToS утверждает; второго — не утверждает, и не случайно.
«Реализуемо каждое число» есть утверждение о всяком отдельном числе, взятом порознь: для него список различий может быть построен. Это не утверждение, что все списки построены и собраны в готовую совокупность. Кардинальный путь даёт первое и не даёт второго.
Почему ToS не делает второго шага — не собирает все числа в готовую завершённую совокупность — и почему этот отказ не есть нехватка, а есть прямое следствие принципа , разбирает § 2.7. Прежде же нужно рассмотреть индуктивную форму, на которую опёрлось доказательство настоящего раздела, — и показать, что в ToS она не аксиома, а вырастает из устройства счёта. Это — предмет § 2.6.
Откуда индукция
Индукция как опора предыдущего раздела
Доказательство реализуемости каждого числа (§ 2.5.3) имело определённую форму: начало — единица реализуема — и сохраняемый переход — из реализуемости следует реализуемость . Из этих двоих был получен вывод о всяком . Эта форма рассуждения — начало плюс переход, дающие заключение обо всём ряде — есть математическая индукция.
Индукция в математике обычно вводится как аксиома — одна из аксиом Пеано, принимаемая без вывода. Настоящий раздел показывает, что в ToS дело обстоит иначе: индукция здесь не постулируется, а вырастает из устройства счёта — из повторимости акта различения. Это не значит, что ToS «доказывает аксиому Пеано»: речь о другом — о том, что в ToS принцип индукции не нужно вводить отдельным постулатом, ибо он уже содержится в том, как строится числовой ряд.
Что утверждает индукция
Напомним форму принципа индукции, не воспроизводя его школьной подачи. Принцип говорит: чтобы некоторое свойство было верно для всякого натурального числа, достаточно двух вещей — чтобы оно было верно для первого числа (база), и чтобы из его верности для следовала верность для (шаг). База и шаг вместе влекут заключение: свойство верно для всего ряда.
Сила принципа — в этом «вместе влекут». База одна; шаг один; а заключение — о бесконечном ряде чисел. Откуда у двух конечных посылок берётся власть над всем рядом? В аксиоматической подаче ответа нет: индукция постулирована, и спрашивать, почему она верна, не полагается. ToS на этот вопрос отвечает.
Индукция есть форма повторимого акта
Ответ ToS прост и состоит в том, чтобы увидеть: индукция не привнесена в числовой ряд извне — она есть словесная запись того, как ряд устроен.
Числовой ряд в ToS не дан готовым (§ 2.5.4). Он строится —
повторением акта различения (§ 2.1). Построение это имеет ровно две
составляющие, и других у него нет. Первая: есть первый акт —
единица (§ 1.2). Вторая: всякий совершённый акт повторим —
за ним можно совершить ещё один, и это есть переход от к
(§ 2.5.2, succisnew_distinction). Первый акт и повторимость — вот и всё, из чего
сложен ряд.
Сопоставим это с принципом индукции. База индукции — свойство верно для первого числа. Первая составляющая построения — есть первый акт. Шаг индукции — из верности для следует верность для . Вторая составляющая построения — акт повторим, за совершается . База индукции отвечает первому акту; шаг индукции отвечает повторимости акта. Это не сходство и не аналогия — это одно и то же, выраженное двумя способами: индукция говорит о построении ряда то же, что говорит о нём ToS, разбирая повторение акта.
Принцип индукции не привнесён в числовой ряд извне. База индукции есть первый акт различения; шаг индукции есть повторимость акта. Индукция — словесная запись того самого построения ряда повторением акта, которое ToS прослеживает с § 2.1. Потому в ToS индукция не аксиома: она содержится в устройстве счёта.
Здесь необходима оговорка о формальном слое — иначе сказанное можно
понять сильнее, чем оно есть. Машинное доказательство теоремы
positivenatisdistinctioncount
(§ 2.5.3) использует стандартную индукцию по nat —
тактику induction, опирающуюся на встроенный в Rocq принцип
индукции для типа nat. То есть в формальном слое ToS
не выводит сам принцип индукции из Distinction: принцип
индукции по nat берётся готовым вместе с типом nat.
Машинная теорема показывает иное — что при стандартной
индукции по nat реализуемость положительных чисел через списки
различий сохраняется на каждом шаге. Онтологическое объяснение
настоящего раздела отвечает не на формальный, а на содержательный
вопрос: почему именно индуктивная форма — база плюс
сохраняемый шаг — соответствует устройству счёта в ToS. Ответ
(индукция есть запись построения ряда повторением акта) остаётся в
силе как онтологическое обоснование применимости индуктивной
формы; он не есть и не претендует быть формальным выводом принципа
индукции из акта различения. Формальный слой пользуется индукцией по
nat; онтологический слой объясняет, отчего эта форма здесь
уместна.
Почему две посылки властны над всем рядом
Теперь получает ответ и вопрос § 2.6.2: откуда у базы и шага — двух конечных посылок — власть над всем бесконечным рядом?
Власть эта берётся оттуда же, откуда берётся сам ряд. Ряд есть не что иное, как первый акт, повторённый, и повторённый снова, и так далее (§ 2.5.3). Всякое число ряда достигается из единицы конечным числом повторений — иначе оно не было бы в ряду. А база и шаг суть в точности первый акт и одно повторение. Поэтому: что верно для базы (для первого акта) и сохраняется шагом (одним повторением), то сохраняется и вдоль всякой конечной цепочки повторений — то есть верно для всякого достигнутого числа. База и шаг властны над всем рядом не по особому могуществу принципа, а потому, что ряд весь и состоит из применений базы и шага. Индукция «дотягивается» до всякого числа ровно так, как до него дотягивается само построение (§ 2.5.3): шаг за шагом, и каждое число достигается за конечное их число.
Видно и то, чего индукция не даёт — и это важно для § 2.7. Индукция позволяет заключить о всяком числе ряда, ибо всякое достижимо конечной цепочкой. Она не даёт и не предполагает завершённого обхода всего ряда сразу: заключение «для всякого » получается не прохождением бесконечного ряда до конца, а тем, что для любого предъявленного конечная цепочка база–шаг–…–шаг до него доводит. Индукция работает «по запросу для каждого», а не «разом для всех». Это различение — то же, что в § 2.5.4 («каждое число, но не все сразу»), — и оно прямо подводит к принципу .
Индукция и формальная запись
Стоит сказать, как сказанное соотносится с формальной стороной дела.
В Rocq натуральные числа — тип nat, и принцип индукции для
него доступен как nat_ind — он входит в
устройство индуктивного типа. Может показаться, что тем самым индукция
в ToS всё же принята вместе с типом nat, а не
выведена. Но это смешение двух слоёв, уже различённых в § 1.4 и
§ 2.3.3.
На слое формальной записи индукция действительно дана вместе с
индуктивным типом nat: так устроен Rocq. На слое онтологии
ToS вопрос иной — не «доступен ли принцип в Rocq», а «почему
он верен, что в самом предмете ему отвечает». И ответ дан выше:
индукция верна потому, что числовой ряд строится повторением акта, а
база и шаг суть первый акт и повторение. Rocq предоставляет индукцию
как готовый инструмент; ToS объясняет, почему этот инструмент
приложим — почему числовой ряд таков, что индукция по нему
правомерна. Индуктивное устройство типа nat в Rocq есть
формальное отображение того, что ToS установила содержательно:
ряд порождается первым актом и его повторением.
Что Rocq даёт индукцию вместе с типом nat — факт слоя
формальной записи. Почему индукция правомерна — вопрос онтологии, и
ToS на него отвечает: ряд строится первым актом и повторением, а
индукция есть запись этого построения. Формальная доступность принципа
не отменяет того, что в ToS он обоснован, а не постулирован.
На этом кардинальный путь почти завершён: показано, что значит присутствие числа (§ 2.4), что реализуемо всякое число (§ 2.5) и что индукция, на которую это опёрто, вырастает из устройства счёта (§ 2.6). Остался один вопрос — и он уже дважды был отложен. Реализуемо каждое число, но не «все сразу»; индукция властна над всяким числом, но не обходит ряд завершённо. Что это значит для бесконечности натурального ряда — и почему ToS говорит о ней именно так — разбирает следующий раздел.
{P4} и бесконечность
Отложенный вопрос
Дважды на протяжении главы возникало одно и то же ограничение, и дважды разбор его был отложен. § 2.5.4: реализуемо каждое число, но не «все числа сразу». § 2.6.4: индукция властна над всяким числом, но не обходит ряд завершённо. В обоих случаях ToS утверждала нечто про любой отдельный член ряда и воздерживалась утверждать про ряд как целое.
Воздержание это требует объяснения. Натуральный ряд бесконечен — так скажет всякий, и ToS не возражает. Но что значит «бесконечен»? Если кардинальный путь построил каждое число и не построил «все числа сразу», то бесконечен ли построенный ряд — и в каком смысле? Настоящий раздел отвечает, и ответ опирается на принцип, который до сих пор в Части II не звучал явно, — на .
Возражение: не есть ли «для всякого {n}» обращение к завершённой бесконечности
Поставим возражение в полную силу, потому что оно естественно и на нём проверяется вся конструкция.
Кардинальный путь доказал теорему вида «для всякого список из различий реализуем» (§ 2.5). Слова «для всякого » пробегают, казалось бы, весь натуральный ряд. А пробежать весь ряд — значит обойти бесконечную совокупность чисел. Не означает ли тогда само утверждение «для всякого », что бесконечная совокупность всех натуральных чисел уже налична как завершённый объект, — иначе по чему бы пробегало «всякий»? И если так, то ToS, заявляя в § 2.5.4 об отказе от «всех чисел сразу», на деле этот отказ нарушает: ведь квантор «для всякого» будто бы уже требует завершённой бесконечности.
Возражение серьёзно. Если оно верно, кардинальный путь внутренне противоречив: он строит ряд почленно, отрицая готовую совокупность, — и тут же квантором «для всякого» эту совокупность будто бы предполагает. Ответ ToS показывает, что возражение покоится на смешении двух разных вещей.
Универсальная квантификация как схема, не как объект
Смешаны квантор и совокупность. Возражение читает «для всякого » так, будто это обход наличной совокупности — будто, чтобы высказать «для всякого верно », нужно иметь совокупность всех и пройти её. Но универсальная квантификация устроена не так.
В ToS, как и в строгой конструктивной трактовке вообще, утверждение «для всякого верно » есть не высказывание о завершённой совокупности, а схема: обязательство, что для любого предъявленного может быть предъявлено доказательство . Утверждение «для всякого » не описывает обойдённую бесконечность — оно обещает ответ на запрос: какое ни назови, доказательство будет построено.
И ToS показала в точности это (§ 2.6.4): для любого предъявленного конечная цепочка база – шаг – … – шаг доводит до . Никакого обхода бесконечной совокупности здесь нет — есть конечная цепочка, своя для каждого запроса. «Для всякого » истинно не потому, что бесконечная совокупность пройдена, а потому, что для любого запроса конечный ответ гарантирован. Квантор есть схема «по запросу», не объект «вся совокупность».
Утверждение «для всякого » не описывает завершённую совокупность всех чисел и не требует её. Оно есть схема: для любого предъявленного доказательство может быть построено — конечной цепочкой, своей для каждого . Квантор «для всякого» — обещание ответа на запрос, а не обход наличной бесконечности.
{
Здесь нужна точность относительно формальной стороны. В Rocq
утверждение forall n : nat, P n есть зависимый
функциональный тип над nat: его обитатель — функция,
которая по произвольному входу n : nat возвращает
доказательство P n. Поэтому было бы неточно сказать, что
квантор вовсе не имеет области: домен у него есть — это тип
nat, и nat как тип в Rocq уже задан. Точная
формулировка иная: forall n : nat, P n не требует
перечисления всех n и не предполагает nat
пройденным до конца как завершённую совокупность; он требует
единой конструкции — функции, — работающей для произвольного
предъявленного n. Различие <<схема против объекта>>,
проведённое выше, есть, таким образом, различие между обходом
завершённой совокупности и единой процедурой по запросу — а
не утверждение, будто у квантора нет домена. Домен nat есть;
чего нет — так это требования предъявить nat как пройденную
актуальную тотальность. Квантор есть тип функций <<по любому
построить >>, и именно поэтому он совместим с почленным,
непройденным-до-конца построением ряда.
}
Тем самым возражение § 2.7.2 снято. «Для всякого » не предполагает «всех чисел сразу»: оно совместимо с почленным построением ряда, ибо само есть лишь обещание, что построение дотянется до любого затребованного члена.
Бесконечность как возможность, не как совокупность: {P4}
Сказанное — частный случай общего принципа ToS, и теперь его можно назвать. Это , выведенный в Главе I.4 из закона .
Приведём в его собственной формулировке, не подменяя её пересказом. — принцип конечной актуальности — гласит: по всякий процесс имеет последовательную структуру, стадия за стадией; на каждой стадии завершено конечное число шагов, и каждый шаг добавляет конечное число элементов, так что итог всякой стадии конечен. Применительно к системам это значит: на каждой отдельной стадии актуально присутствует конечное число элементов. Принцип говорит именно о стадии — о том, что налично на всяком отдельном шаге; он не говорит о «совокупности всех стадий» и не вводит её.
Из , взятого в этой точной форме, следует — уже как следствие, а не как сам принцип, — то, что существенно для бесконечности. Раз актуально только наличное на отдельной стадии, и всякая стадия конечна, то завершённого актуально-бесконечного объекта в ToS нет: нет стадии, на которой было бы налично бесконечное. Бесконечность остаётся, но как процесс, не как объект — как неограниченная последовательность стадий, ни одна из которых не последняя. Так оборачивается потенциальным пониманием бесконечности: бесконечность есть возможность неограниченного разворачивания процесса, а не готовая совокупность всего развёрнутого сразу.
Натуральный ряд бесконечен в этом, и только в этом, смысле. Его построение есть процесс в смысле : всякая стадия — конечный список различий (§ 2.3), и на всякой стадии налично конечное число совершённых актов. Не существует последней стадии — за всяким совершённым актом можно совершить ещё один (§ 2.5.2), — и потому построение ряда неограниченно продолжаемо. Но «неограниченно продолжаемо» не значит «завершено»: возможность сделать ещё шаг есть всегда, а вот стадии, на которой был бы налично весь ряд, — нет, ибо всякая стадия конечна.
Приложим это к итогам главы. «Реализуемо каждое число» (§ 2.5) читается теперь точно: для любого затребованного числа построение может быть доведено до него — на некоторой конечной стадии оно актуально. «Не все числа сразу» (§ 2.5.4) читается так же точно: нет стадии, на которой был бы налично весь ряд, — ибо всякая стадия по конечна. Эти два утверждения не в противоречии, как могло казаться: они суть две стороны одного потенциального понимания бесконечности. Ряд бесконечен как неисчерпаемая возможность счёта, не как исчерпанный итог его.
Стоит уточнить, что именно ToS отрицает, говоря об отсутствии
завершённой бесконечности — и в какой форме это отрицание
формализовано. ToS не утверждает абсолютно, будто
<<совокупности всех натуральных чисел не бывает ни в каком смысле>>.
Утверждается точнее: натуральный ряд не есть completed
actuality — нет стадии, на которой весь ряд был бы актуально
предъявлен. Формально несовместимость завершённой бесконечности с
разобрана в файле P4CompletedInfinity.v
репозитория, и разобрана условно: соответствующая теорема
выводит противоречие не из одного лишь существования бесконечного
ряда, а из трёх посылок вместе — из предиката завершённого
членства (CompletedInfSet, <<всякое принадлежит >>),
из стадийной ограниченности по (P4_stage_bounded)
и из моста (bridge), переводящего членство в ряду в
актуальную предъявленность на конечной стадии. Иными словами:
completed infinity противоречит при условии моста,
связывающего членство с актуальностью на стадии. Это и есть точная
форма отрицания: ToS отвергает не квантор <<для всякого >> (он, как
показано в § 2.7.3, законен и без завершённой совокупности), а именно
совмещение завершённого членства со стадийной актуальностью —
то есть представление всего ряда как наличного на некоторой стадии.
— принцип конечной актуальности: на всякой отдельной стадии процесса актуально конечное число элементов. Отсюда следствием вытекает потенциальное понимание бесконечности: завершённого бесконечного объекта нет, бесконечность есть процесс — неограниченная продолжаемость, не готовая совокупность. Натуральный ряд бесконечен именно так: «каждое число реализуемо» и «все числа сразу не даны» — две стороны этого; ряд неисчерпаем как возможность счёта и потому не завершён как его итог.
Что отсюда следует для дальнейшего
Потенциальное понимание бесконечности — не оговорка кардинального пути, а черта, которая пройдёт через всю Часть II и дальше; стоит указать, куда она ведёт.
Прежде всего, она объясняет, отчего натуральный ряд в ToS есть ряд и ничего сверх него. В нём нет «числа », нет завершающего члена, нет совокупности-целого, наличной как актуальность над числами. Бесконечность ряда не есть ещё один его объект — она есть свойство построения: его неограниченная продолжаемость. Это прямое следствие , и оно отделяет ToS от построений, в которых натуральный ряд берётся как completed actuality — как совокупность, актуально предъявленная целиком (§ 1.1).
Далее, потенциальное понимание бесконечности — то самое, что
позволило Главе II.1 разобрать запись (§ 1.8). Там
было разобрано как процесс — продолжаемая
схема приближений, не завершённый объект; и согласие этого с
было отмечено, но ещё не назван. Теперь он назван:
как процесс и натуральный ряд как потенциальная
бесконечность стоят на одном принципе. Подчеркнём, как и в Главе II.1,
точный смысл этого. ToS не отрицает стандартного равенства
в режиме действительных чисел, где запись по
определению означает предел или класс эквивалентности. Речь о
различении режимов: сырой процесс приближений, постоянный
процесс и класс эквивалентности процессов — разные режимы, и
безусловное равенство уместно лишь по переходе к общему режиму.
Часть IV развернёт это формально через тип RealProcess
(файл ProcessCore.v: RealProcess )
и отношение process_equiv — эквивалентность процессов
по пределу, доказанное отношением эквивалентности и не
сводящееся к поточечному равенству. Бесконечность как процесс —
общая черта чисел ToS, а не особенность одного спорного случая.
Кардинальный путь на этом завершён. Глава показала: счёт есть фиксация числа совершённых различий; формой множественности служит список; присутствие числа есть его реализуемость списком различий; реализуемо всякое число; индукция вырастает из повторимости акта; а бесконечность ряда есть потенциальная бесконечность построения, по . Остаётся последнее — увидеть, что путь, здесь пройденный ToS независимо, обнаруживает совпадение с давней линией мысли о числе как кратности одного. Этим глава и завершается.
Кратность одного
Двойственная природа числа в кардинальном пути
Кардинальный путь построен (§ 2.1–2.7). Прежде чем закрыть главу, стоит вглядеться в одну черту построенного — черту, которая в ходе работы оставалась неявной, а теперь может быть названа.
Число в кардинальном пути есть список из совершённых различий (§ 2.4). В этом определении соединены два, казалось бы, противоположных указания. С одной стороны, число есть множественность: различий, совершённых актов, элементов списка — многое. С другой стороны, число есть единство: одно число, один отпечаток, одна система-список, взятая как целое. Число кардинального пути двойственно: оно есть многое, собранное в одно.
Двойственность эта не противоречие и не натяжка. Она прямо следует из того, как путь построен. Множественность — оттого, что число есть список нескольких различий (§ 2.2). Единство — оттого, что все эти различия суть повторения одного акта (§ 2.1.2) и собраны в один список как одну систему E/R/R (§ 2.2.4). Многое числа есть многое повторений; единство числа есть единство повторяемого акта и единство собирающего списка. Число есть кратность одного: одно, взятое столько-то раз, и эти разы, собранные обратно в одно.
Разбор E/R/R: число-список как система
{
Разбор E/R/R этого пути глава уже провела — в § 2.2.4, для списка как
системы: Rules — правило следования (); Roles —
упорядоченные позиции; Elements — различия. Сведём его теперь в
таблицу, добавив доказанные предикаты счёта (§ 2.3–2.4) и
потенциальную бесконечность (§ 2.7), и проверим сформированность.
Оговорка о статусе: <<система>> здесь — содержательная интерпретация
над стандартным списком; формальные предикаты
distinctioncount и
distinctioncountfromone
доказаны (Distinction.v, PrimalityOfOne.v), но
онтологическое чтение несёт проза.}
| Компонент | Что фиксирует | E/R/R |
|---|---|---|
| правило следования (); рекурсия счёта | конституция списка | Rule |
длина = акт подсчёта; distinction_count ( фильтр ) | счёт и положительность | Rule |
| : ряд потенциально бесконечен | потенциальность | Rule |
| длина = число; позиции <<первая>>, <<-я>> | роль-количество | Role |
| различия (повторения одного акта); список | носители (конечны, ) | Element |
| законы – (здесь ) | универсальный слой | Rule (универс.) |
{
Хорошая сформированность. Разметка однозначна:
различия — элементы, длина и позиции — роли, правило следования —
правило. Соблюдён : длина считает различия (элементы), а
не самоё себя. Диагностика этой главы уже проведена в § 2.2.4 и есть
случай общей: список (полная система с правилом следования)
против множества (та же система с погашенным правилом
следования) — кардинальный путь требует именно списка, ибо счёт несёт
следование, которое множество гасит. И граничный случай ровен: пустой
список даёт длину нуль — корректный итог подсчёта, не встретившего
элементов, а не <<ошибку>> и не <<непроявленность>> (§ 2.3.3). Честная
граница: distinctioncountfrom_one
есть фильтр положительности (), а не проверка
<<совершённости>> актов; индукция — стандартная по nat, не
выведенная из различения (§ 2.6).}
Что даёт разбор. Это первый из четырёх путей: число есть роль-количество — длина списка повторённых различий, — и эта же ролевая структура (начало и следование) повторится на уровнях (Глава II.3), битах (Глава II.4) и позициях (Глава II.5), которая и сведёт четыре пути воедино. Кардинальный путь даёт ей первое воплощение и закрепляет двойственность числа — кратность одного (§ 2.8.1): многое повторений, собранное в одну систему-список.
Независимое схождение с давней мыслью
Понимание числа как кратности одного не ново для европейской мысли — и здесь, как и в § 1.5, уместно сопоставление. Сделать его нужно точно: ToS пришла к кратности одного своим путём, из своей деривации (§ 2.1–2.7), и не наследует ничьей традиции. Совпадение, которое будет отмечено, есть схождение независимых путей, а не происхождение ToS из предшественников. И статус этого совпадения нужно назвать прямо: оно — не доказательство и не родословная, а эвристическая поддержка. Что мотив кратности одного возникает в нескольких независимых традициях, повышает правдоподобие того, что собственная деривация ToS попала в нечто, присущее предмету, а не в артефакт своего формализма; но строгого веса доказательства такое схождение не несёт и нести не может.
Лейбниц. В одном ряду с ToS оказывается давнее определение: число есть то, что относится к единице как линия к линии, — множество единиц, единое собрание повторённого одного.3 Это определение берёт число ровно двойственным: единица как то, что повторяется, и число как собранная кратность её повторений. ToS приходит к тому же из своего основания: единица — первый акт (§ 1.2), число — собранная кратность его повторений (§ 2.8.1). Совпадение точное — и тем более показательное, что пути к нему разные: там — определение числа через отношение к единице, здесь — деривация числа из акта различения.
Брауэр. Независимо обнаруживается схождение и с интуиционистским пониманием числа.4 В нём натуральное число есть не объект готового множества, а построение — результат мысленного шага, повторённого определённое число раз; и весь числовой ряд есть не завершённая совокупность, а свободно продолжаемое разворачивание этих шагов. ToS, идя своей дорогой, приходит к тому же: число реализуемо построением списка (§ 2.4), а ряд бесконечен лишь потенциально, как продолжаемость построения (§ 2.7). Здесь схождение касается не только кратности одного, но и понимания бесконечности — и снова это схождение независимых путей: интуиционизм исходит из устройства математической интуиции, ToS — из устройства акта различения.
Гуссерль. Ещё одно схождение — с описанием того, как число возникает для сознания: число там есть итог акта собирания — акта, который многое схватывает как одно, не упраздняя многого.5 Кратность не стирается в единстве и единство не распадается в кратность — акт собирания держит обе стороны. ToS приходит к тому же составом своего списка: список есть многое различий, собранное в одно как система (§ 2.2.4), — и собирание это есть акт, не готовая данность. И снова дороги независимы: там — описание акта сознания, здесь — деривация структуры списка.
Понимание числа как кратности одного — двойственности многого и единства — обнаруживается у Лейбница, в интуиционизме, в описании собирающего акта. ToS приходит к нему независимо, из деривации числа как списка повторённых различий. Совпадение разных путей ToS не обращает в доказательство: оно есть эвристическая поддержка — собственная деривация ToS приходит к структуре, которая уже многократно распознавалась в истории мысли, и это повышает правдоподобие того, что структура отвечает предмету.
Стоит сказать и о границе схождения — чтобы сопоставление осталось точным. Совпадает понимание строения числа — двойственность одного и многого, число как собранная кратность. Не утверждается совпадения во всём: у каждого из названных подходов своё основание, своя система, свои дальнейшие следствия, и ToS не сводит себя ни к одному из них и ни одного не присваивает. Отмечено ровно схождение в одной точке — и ценно оно как раз тем, что пути к этой точке разошлись во всём остальном.
Итог главы
Глава прошла первый из четырёх путей ToS к натуральному ряду — путь кардинальный.
Путь начался с перехода от одного акта к нескольким: «несколько актов»
возможно потому, что акт различения повторим, и счёт сам есть
деятельность различения (§ 2.1). Деривация повторимого, упорядоченного
счёта привела — не выбором, а вынужденно — к списку как форме
множественности: множество, лишённое порядка и производное по ,
деривации не отвечает, тогда как список несёт порядок () и в
разборе E/R/R оказывается полной системой, тогда как множество — той
же системой с погашенным правилом следования (§ 2.2). Длина списка
различий была определена не как присущее свойство, а как итог акта
подсчёта; для пустого списка подсчёт законно даёт результат
нуль — граничный итог подсчёта, не встретившего ни одного элемента
(§ 2.3). Технический предикат
подсчёта был отделён от онтологического предиката счёта от единицы —
distinctioncountfrom_one, —
для которого нуль не есть счёт, а единица есть первый счёт (§ 2.4).
Показано, что реализуемо каждое натуральное число — единица
реализуема, и переход от к сохраняет реализуемость
(§ 2.5). Принцип индукции, на который это опёрто, оказался не
аксиомой, а словесной записью самого построения: база отвечает первому
акту, шаг — повторимости (§ 2.6). И бесконечность ряда, по принципу
, есть бесконечность потенциальная — неограниченная
продолжаемость построения, не завершённая совокупность (§ 2.7).
Наконец, число построенного пути предстало как кратность одного —
двойственность многого повторений и единства повторяемого, — в чём
ToS независимо сходится с давней линией мысли (§ 2.8).
Так пройден кардинальный путь: натуральное число есть длина списка совершённых различий, и весь натуральный ряд порождается повторимостью первого акта.
Но это лишь один из путей. ToS приходит к натуральному ряду не единожды, а четырежды (§ 2.1), и кардинальный путь — только первый. Следующая глава открывает второй — путь иерархический: число как уровень в иерархии, порождаемый не приставлением ещё одного различия, а восхождением по ступеням организации. Тот же натуральный ряд будет получен из иной деривации — из закона и порождаемой им структуры уровней. Что один и тот же ряд достижим несколькими независимыми путями — не избыточность, а указание на устойчивость предмета; смысл этого ToS соберёт в Главе II.5.
Часть: Часть II. Натуральные числа · Том: «Математика»
Понятия: Порядок · Формализация
Навигация: ← Глава 1. Первичность единицы · Глава 3. Иерархический путь: число как уровень →
Footnotes
-
Предикат
distinctioncount, как и типDistinctionи теоремы о нём (zerodistinctionsи далее), определён в файлеDistinction.vRocq-репозитория ToS. Здесь и далее имена файлов репозитория приводятся для справки. ↩ -
Предикат
distinctioncountfromoneи относящиеся к нему теоремы (firstcountisone,zeronotacount,adddistinction,succisnewdistinction,positivenatisdistinction_count) определены в файлеPrimalityOfOne.vRocq-репозитория ToS. Здесь и далее в главе имена файлов репозитория приводятся для справки. ↩ -
Определение числа через отношение к единице восходит к евклидовой традиции (Начала, книга VII, определения 1–2: единица и число как множество единиц); Лейбниц развивает понимание числа как собрания единиц в ряде работ по основаниям арифметики и комбинаторике. ↩
-
Л. Э. Я. Брауэр развивает понимание натурального числа как мысленного построения и числового ряда как свободно продолжаемого разворачивания в работах по основаниям интуиционистской математики, начиная с диссертации <
> (1907). ↩ -
Э. Гуссерль анализирует возникновение понятия числа из акта собирающего схватывания (kollektive Verbindung) в Философии арифметики (Philosophie der Arithmetik, 1891). ↩